彼女は&とどのようにやり取りしますか?

彼女は&とどのようにやり取りしますか?

私はUbuntu(clear)でsh()を使用しており、dashマンページには次のように表示されます-e

           -e errexit 対話型でない場合、テストされていないコマンドが失敗した場合は直ちに終了します。
                            コマンドの終了ステータスは明示的にテストされたと見なされます。
                            if コマンドは、if、elif、while、または Until を制御します。
                            コマンドが「&&」または「||」の左オペランドの場合、Opera -
                            トール。

バックグラウンドコマンドが失敗した場合はどうなりますか?bashこれに関してパフォーマンスは異なりますか?

答え1

これをテストするのはとても簡単です。そして-e

% bash -e -c 'false & echo waiting; if wait $!; then echo success; else echo failure; fi'
waiting
failure

したがって、バックグラウンドコマンドが失敗した場合、シェルは自動的に終了しません(-eこれは不十分です)。

wait明示的なテストの外にある場合、wait失敗したバックグラウンドプロセスの戻りコードが返されます。この場合、-e指定した場合、シェルは終了します。

% bash -e -c 'false & echo waiting; wait $!; echo returned'   
waiting

bashまたはのような結果ですshzsh

関連情報