は、私はこのようなコマンドを参照してください。Linuxコマンドラインの2つの垂直バーとコロンの意味は何ですか?
sudo groupadd www-data || :
をしかし、私はの意味を知らない|| :
私は:
がエイリアス化されているというメッセージが表示されていますが、これですべての行がサイレントになりますか?
は、私はこのようなコマンドを参照してください。Linuxコマンドラインの2つの垂直バーとコロンの意味は何ですか?
sudo groupadd www-data || :
をしかし、私はの意味を知らない|| :
私は:
がエイリアス化されているというメッセージが表示されていますが、これですべての行がサイレントになりますか?
これは、終了ステータスを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
が失敗するかどうかに関わらず、全体的な式の戻り状況は成功し、スクリプト終了を引き起こしません。
ありがとうございました! – Dan