やる気私はしばしばAndroidデバイスでリモートシェルを開き(adb
/ Androidデバッグブリッジを使用)、私のコンピュータ(Androidデバイスが複数あるため、Androidデバイスではない)にスクリプトを書いて最初のシェルに接続するのに役立ちます。
たとえば、ディレクトリを特定のフォルダに変更したい場合がありますが、コードが実行されるとstdinがすぐに閉じられ、その行が実際に実行されているかどうかをテストするためにシェルもecho "cd /storage/self/primary/Download; mkdir bobby" | adb shell
すぐに閉じます。mkdir bobby
それは。
たとえば、を実行すると、シェルは5秒以内に自動的に閉じますecho "cd /storage/self/primary/Download; mkdir bobby; sleep 5" | adb shell
。残念ながら、heredoc区切り文字が見つかるとシェルも閉じるため、heredocは役に立ちません。
質問:コマンドをパイプした後に端末にstdin接続を維持して入力できるようにするにはどうすればよいですか?ssh
オプションのコマンドを直接渡すことができるので、これは難しいことではありません。
この質問がすでにリクエストされている場合はお詫び申し上げます。表現方法がわからない。
ベストアンサー1
cat
パイプを開いたままにするには、パイプの左側に次のものを追加します。
{ echo "cd /storage/self/primary/Download; mkdir bobby"; cat; } | adb shell
プロセスcat
はその後実行され、echo
標準出力はadb shell
コマンドに接続され、標準入力は端末(入力可能)から読み取られます。
終了するとすぐに(割り込みまたは入力終了信号をcat
押す)パイプラインが終了します。Ctrl+CCtrl+D
プロンプトとコマンドラインの完了、またはコマンドがadb shell
通常提供する他の対話型機能を含む完全な対話型シェルを提供できない場合がありますが、パイプの右側にコマンドを送信できます。
で説明されているものと似ています。「パイプを開けておく」とはどういう意味ですか?