他のシェルスクリプト内のバックグラウンドの対話型シェル

他のシェルスクリプト内のバックグラウンドの対話型シェル

シェルスクリプト内で対話型shセッションを実行しようとすると、いくつかの問題があります。内部shプロセスはすべてのCPUを使用し、決して終了しません。

問題を再現するには、次の内容を含む「script.sh」というファイルを作成してください。

sleep 10 | sh -i | sleep 10 &

次のコマンドを使用して実行します。

sh script.sh

sleep コマンドはプレースホルダーに過ぎず、入力を sh -i に接続し、その出力を処理する他のコマンドがあります。これは非常に奇妙な設定であることを知っていますが、インタラクティブシェルを使用できる場合はより良いでしょう。この時点で何が起こっているのか気になって理解したいと思います。

ベストアンサー1

内部シェルは対話型ではありません。-iフラグを削除すると動作しなくなります。

バラより孤児プロセスグループでは、対話型シェルは何をすべきですか?後ろで何が起こるか説明してください。

おすすめ記事