シェルスクリプト内でインタラクティブなshセッションを実行しようとすると、いくつか問題が発生します。内部shプロセスはすべてのCPUを使用し、終了することはありません。
問題を再現するには、次のようなものを含む「script.sh」という名前のファイルを作成するだけです。
sleep 10 | sh -i | sleep 10 &
以下を使用して実行します。
sh script.sh
sleepコマンドは単なるプレースホルダーです。sh-iに入力をパイプし、その出力を処理する他のコマンドがあります。これは非常に奇妙な設定であることはわかっていますが、インタラクティブシェルを使用できればもっと良いでしょう。この時点で、私は非常に興味があり、何が起こっているのかを理解したいと思います。
あなたの内殻はインタラクティブではありません。-i
旗を外せば、おかしくなりなくなるはずです。
孤立したプロセスグループでインタラクティブシェルは何をすべきかを参照してください。隠れて何が起こっているのかについての説明。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加