bash -iの動作と「私の端末がなぜ動作しないのですか?」

bash -iの動作と「私の端末がなぜ動作しないのですか?」

これは私が試したすべての展開で発生します。

$猫|
bash-3.2$ ls
豊富なバー
bash-3.2$

これでセッションが一時停止しました。つまり、あなたは得ます一つコマンドを実行すると、端末ウィンドウをほぼ閉じる必要があります。 SIGTERM(別名^ C)はbashによって検出されますが、ジョブシェルに戻ることはできません。

私はこれがbashがtty制御のためにcatと戦うことに関連していると思います-iが、明確な情報を見つけることができません。何が起こっているのかを説明できる人はいますか?実行中のプログラムをexeclp("/bin/bash", "bash", "-i")中断せずに自動的に起動するには?expectttyの例外を処理するには、同様のプログラムを書く必要がありますか?

ベストアンサー1

短い答え:はい、Expectを使用する必要があります。

についてはなぜ失敗します。動作によってbash -iopen readline( を使用しても--noediting) はパイプでかなり悪く動作します。また、stdoutターミナルモード(非遮断モードを含む)を設定する代わりに通過するように見えます。stdinこれは、ほとんどの制御文字の期待される動作を失うことを意味します。 (ただし、ttyを直接読みません。)

注:代わりに^C送信してください。ただし、両方とも対話型()モードで停止しています。SIGINTSIGTERM-iSIGHUP

おすすめ記事