當我從Windows桌面 adb shell
進入設備並在其中運行某些命令時,有時我想終止該命令。標準的unixy方法是使用 Ctrl + C kbd>組合鍵。但是,當我這樣做時,整個 adb shell
終止。
如何僅終止當前shell中的程序,而不終止shell本身?
當我從Windows桌面 adb shell
進入設備並在其中運行某些命令時,有時我想終止該命令。標準的unixy方法是使用 Ctrl + C kbd>組合鍵。但是,當我這樣做時,整個 adb shell
終止。
如何僅終止當前shell中的程序,而不終止shell本身?
我為此找到了一種解決方法(至少對於有根電話)。如果手機已紮根,則很可能會安裝 busybox
。 stty
是busybox的一部分。
stty intr ^ x
重新定義 Ctrl kbd> + X kbd>用作中斷命令,例如以前是 Ctrl kbd> + C kbd>。
Alt kbd>- NumPad 3 kbd> + Enter kbd>對我有用。 Alt kbd>- NumPad 0 kbd>- NumPad 3 kbd> + Enter kbd>也可以並顯示“ ^ C”。
i能夠停止 top
進程,並通過按以下順序鍵入以下命令,仍然停留在shell中:
C kbd>
CTRL kbd> + Z kbd>
CTRL kbd> + M kbd>
如果我沒有鍵入所有3個連擊,它將不會停止,我必須 CTRL kbd> + C kbd>退出外殼。我只是通過嘗試不同的按鍵組合而發現了這一點,然後偶然發現了它。 YMMV
Ctrl kbd> + \ kbd>後跟 Enter kbd>通常可以正常工作。
這將發送SIGQUIT信號,該信號可能不會適用於服務器(例如,轉儲核心文件),但我認為在Android手機/平板電腦上使用它(默認情況下不會轉儲核心文件)不是問題。適用於大多數情況的簡單解決方案。
在Windows上,您只需通過數字鍵盤輸入[Alt] + [3](不要忘了之後按Enter鍵)。
這會將[Ctrl] + [c]發送到外殼,從而終止當前命令:
D:\ Android> adb shell $ catcat♥^ C $ exitexitD:\ Android>
請注意,[Alt] + [3]在以下位置生成ASCII字符♥ Windows,它等於ETX字節。
如果您不這樣做,也可以按[Alt] + [0]-[3](按住數字鍵盤上的[0]和[3]的同時按住Alt鍵)棒窗口顯示一顆心;)