Ctrl + Cでadbシェルが終了しないようにする方法


11

Iときにadb shell私のデバイスに(Windowsデスクトップから)、およびそこにいくつかのコマンドを実行しますが、時々私はそのコマンドを終了します。それを行うための標準的な一元的な方法は、Ctrl+Cキーの組み合わせです。しかし、それを行うと全体がadb shell終了します。

シェル自体ではなく、シェル内の現在のプログラムだけを終了するにはどうすればよいですか?


<kbd> Ctrl </ kbd> + <kbd>] </ kbd>が機能すると主張するフォーラムの投稿を読みましたが、うまくいきませんでした。あなたのマイレージは異なる場合があります。SIGINTをキャプチャしないため、adbにCtrl-Cを渡す方法はないようです。残念ながら、標準のCtrl-VメソッドはCtrl-Cでは機能しないようですが、Enterを^Jに変換しました。
Matthewが

回答:


13

私はこれのための回避策のようなものを見つけました(少なくとも根ざした電話のために)。電話が根ざしている場合、busyboxおそらくインストールされています。sttybusyboxの一部です。

stty intr ^ x

Ctrl+ Xを再定義して、中断コマンドとして機能します。たとえば、以前はCtrl+ Cでした。


3
それはかなり素晴らしいです。
Matthewが


3

topこの順序で次のように入力することで、プロセスを停止してシェルにとどまることができました。

C

CTRL+Z

CTRL+M

これらの3つのコンボをすべて入力しなかった場合、停止せず、シェルを終了するにはCTRL+ Cを押す必要があります。異なるキーの組み合わせを試してみて、これを偶然見つけました。YMMV


Ctrl + Zはプロセスを一時停止します。たとえば、後でkillまたはkillallを使用してプロセスを強制終了する必要があります。ただし、この回避策は何もないよりはましです...
haimg 2012年

「出口」をやった後に気づきました。面白いことに、何もしなかったのはctrl + zではなく、ctrl + mを行うまで実際にはシェルに戻りませんでした。最初に「c」を入力しなかった場合、何もしませんでした。
ライアンコンラッド

これは私にはvmstatうまくいきません(私は試しましたtopが)。興味深いことに、押すCtrl-Zと何も起こらないように見えますが、実際には入力がadbではなくWindowsシェルに直接リダイレクトされ始めます。adbの出力(vmstatからの)がシェルウィンドウに表示され続けますが、cd C:(たとえば)入力でき、Windowsシェルで実行されます。次に押すCtrl-Cと出力が停止し、Windowsシェルに入力したコマンドが背後で表示されます。とても変!
Matthewが2012年

3

Ctrl+に\続いてEnter通常は正常に動作します。

これはSIGQUIT信号を送信しますが、これはサーバーには適さない可能性があります(たとえば、コアファイルをダンプします)が、これをAndroidフォン/タブレット(デフォルトではコアファイルをダンプしない)で使用すると問題はないと思います)。ほとんどの場合に機能する簡単なソリューション。


3

Windowsでは、テンキーから[Alt] + [3]を入力するだけです(後でEnterキーを押すことを忘れないでください)。
これにより、[Ctrl] + [c]がシェルに送信され、現在のコマンドが終了します。

D:\ Android> adb shell
$猫
ネコ
♥
^ C

$出口
出口

D:\ Android>

[Alt] + [3]はWindowsでETX-Byteに等しいASCII-Char♥を生成することに注意してください。
ウィンドウをワンドしてハートを表示しない場合は、[Alt] + [0]-[3]を押すこともできます(テンキーの[0]と[3]を押しながらAltキーを押したままにします)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.