起動スクリプト:「exec」と「bash」コマンドの違いは何ですか?

起動スクリプト:「exec」と「bash」コマンドの違いは何ですか?

bwの違いは何ですか?

  1. exec script.sh そして
  2. bash script.sh

script.shに適切な読み取り/実行権限がすべて設定されているとしますか?

答え1

exec script.sh 変えるシェルは現在シェルの shebang 行で定義されており、対応するscript.shインタプリタを使用してファイルの残りの部分を実行します。ファイル拡張子に関係なく、/bin/shからまで何でもできます。/usr/bin/pythonこれを行うにはscript.sh実行可能でなければなりません。これの1つの副作用は、script.sh完了するとシェルも終了することです。対話型端末の場合、端末も終了します。

bash script.shshebang行に関係なく、bash解釈に新しいシェルを使用してください。script.shつまり、shebang 行が存在する場合は無視されます。script.shこのように動作するために実行可能である必要はありません。

関連情報