2016-12-09 14 views

答えて

2

これは、終了ステータスをsudo groupadd www-dataとして無視します。

シェルスクリプトの式の1つが失敗するとすぐに失敗することをお勧めします。これは、いくつかのコマンドのリターンコードをチェックするのを忘れると、エラーを捕らえるのが難しいことから保護します。これは通常、シェルスクリプトの先頭に以下を置くことによって達成される:

set -e 
set -o pipefail 

しかし、今あなたが意図的にのいずれかのコマンドの終了ステータスを無視したい場合は?あなたは一時的にフェイルオンエラーフラグを無効にすることができます:

set +e 
sudo groupadd www-data 
set -e 

これは醜いです。醜さを避けるために、:コマンドでORブール式(||)を使用することができます。これは効果がなく、常に成功します。したがって、sudo groupadd www-data || :は次のように変換されます。 run sudo groupadd www-dataそして失敗した場合は、失敗することができない:を実行します。したがって、sudoが失敗するかどうかに関わらず、全体的な式の戻り状況は成功し、スクリプト終了を引き起こしません。

+0

ありがとうございました! – Dan

関連する問題