2016-07-13 43 views
6

以下のスクリプトをEC2インスタンスのユーザーデータとして使用しています。 -exオプションは何のために使用されているのですか?bashで使用される-exオプションは何ですか? #!/ bin/bash -ex mean

#!/bin/bash -ex 

yum update -y 
yum groupinstall -y "Web Server" "MySQL Database" "PHP Support" 
service httpd start 
chkconfig httpd on 
+2

このスーパーユーザーの投稿を参照してください。http://superuser.com/questions/195826/bash-shebang-for-dummies – Jedi

答えて

6

これは、というのがもうひとつの方法である:

#!/bin/bash 

set -ex # Added line 

yum update -y 
yum groupinstall -y "Web Server" "MySQL Database" "PHP Support" 
service httpd start 
chkconfig httpd on 

[ bash manual ]は言う:

組み込みセットで使用される単一文字のオプションのすべて( セットの組み込みを参照してください)シェルが呼び出されたときのオプションとして使用できます。

[ set reference ]は言う:

セットを使用して、シェルのオプションの値を変更し、 位置パラメータを設定し、またはシェル 変数の名前と値を表示することができます。

-x

印刷単純なコマンドのトレース、コマンドのために、ケースはコマンド、彼らが展開された後、コマンドとその引数または 関連する単語リストのための コマンド、および算術演算を選択し、それらが を実行される前に。 PS4変数の値が展開され、結果の の値がコマンドおよび展開された引数の前に出力されます。

-e

終了直ちに 単一の単純なコマンド(単純なコマンドを参照)、リスト(リストを参照)、または 複合コマンドから成ることができる、(パイプラインを参照)パイプライン場合(化合物を参照コマンド)は、ゼロ以外のステータスを返します。

1

質問に答える素敵なポストは: "!あなたはbashシェバングにタックEXを追加|#/ binに/ bashのを-ex" https://scottlinux.com/2014/08/05/add-tack-e-x-on-your-bash-shebang-binbash-ex/

バッシュスクリプトが#行(shebang上のさまざまなオプションを使用することができます!/ bin/bash)。 A より一般的なものは '#!/ bin/bash -ex'です。

-eコマンドがゼロ以外のステータスで終了するとすぐに終了します。 -xコマンドとその引数を実行時に表示します。

つまり、#!/ bin/bashに-exを追加すると冗長な出力が得られ、 はスクリプトの一部が失敗した場合にすぐにスクリプトを中止します。

関連する問題