これら2つのコマンドの違いは何ですか?
exec "$(dirname "$0")/suman-shell";
exit $?;
そして
exec "$(dirname "$0")/suman-shell";
exit;
$?
最初のケースは重複していますか?
ベストアンサー1
スクリプトにはいくつかの欠陥があります。
exec "$(dirname "$0")/suman-shell";
exit $?;
1つ目は、末尾のセミコロンが重複していることです。彼らは無害ですが、目的はありません。行の終わりはすでに区切り文字であり、セミコロンは1行の複数のコマンド間の区切り文字として使用されます。これらの存在はコードの可読性をわずかに低下させる。
2 番目のコマンドはデフォルトで前の
exit
コマンドの終了ステータスを返すので、意図が明示されていますが、説明は重複してい$?
ます。3つ目は、
exec
通常の状況では1が決して返されないため、exit
呼び出しが最初から到達せず、重複することです。
1が返される唯一のケースexec
は、空の引数、破損したリダイレクト、またはexecfail
bashオプションのセット(デフォルトではありません)です。最初と2番目はここには適用されず、3番目はここに適用されるという証拠もありません。