私は、コマンドを実行した後にリターンコードが$?
に含まれていることがわかっているが、スクリプトが実行された後$?
が何を意味するのでしょうか?そのスクリプトの最後のコマンドの戻りコード?スクリプトは尾に頭からexcutedといくつかの予期せぬシステム停止か何かによって中断されませんされている場合bashスクリプトにはリターンコード自体がありますか?
は、私が言うことはできますか?
私はexcuted、
Command A;
if [ $? -eq 0]
then
echo "OK" >> log
else
echo "failed" >> log
fi
とA
の実行中にシステムが停止し、以下のようなスクリプトを持っている場合、私はそのログファイルに何を見つけるのだろうか? "OK"、 "失敗"、または何もありませんか?
他のスクリプトが中断した場合、シェルに報告された終了ステータスはゼロになりません(スクリプトは割り込みを処理または無視し、すべての後にゼロ終了のために配置されます)。システムが停止した場合、呼び出し元のスクリプトも停止してしまいます。再試行などの処理に非常に洗練されたシステムを使用していない限り、何も判断できません。 –
スクリプトが実行する最後のコマンドが 'exit'スクリプトファイルの最後まで実行されたために終了するか、 'set -e'とエラーのために早期に終了した場合)、スクリプトの戻りコードは最後に実行されたコマンドの戻りコードになります。 –
これは「はい」です。 –