`exit;`と`exit$?;`の違い

`exit;`と`exit$?;`の違い

これら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は、空の引数、破損したリダイレクト、またはexecfailbashオプションのセット(デフォルトではありません)です。最初と2番目はここには適用されず、3番目はここに適用されるという証拠もありません。

おすすめ記事