Bashスクリプトを書くときに&&に対応するものは何ですか?

Bashスクリプトを書くときに&&に対応するものは何ですか?

重複した質問なら事前にお詫び申し上げます。ここに質問する前に検索/確認しようとしました。

私は次のようなクイフを書きたいと思います。

foocommand && foocommand2 && foocommand3

アイデアは、前のコマンドが「成功」した場合にのみ、後続のコマンドを実行したいということです。

私は少し長いスクリプトを書いていますが、この1行のコードは他の人にとって混乱しているコードの束のように見えるので、実行可能ではありません。

スクリプトでコマンド間隔を置き、コマンド間にコメントを書きたいです。どうすれば&&と同等の機能を持つことができますか?

答え1

shebang行を次のように変更できます。

#!/bin/bash -e

エラーが発生するとスクリプトは停止します。

答え2

次のことができます。

#!/bin/sh
ls -lh &&
    # This is a comment
    echo 'Wicked, it works!'

あなたの質問を正しく理解したことを願っています。

答え3

アイデアが気に入らない場合は、set -e論理を反転することもできます。

foocommand || exit 1
foocommand2 || exit 2
foocommand3 || exit 3

より便利なのは、exitコンテンツを便利なエラーメッセージに置き換えて終了することです。もちろん。returnexit

答え4

入れ子になったステートメントの使用を検討してくださいif。他のオプションは、グループ化にカールを使用することです。{ true && echo hi; } || echo huh

アップデート1:

改行/コメントがない例は次のとおりです。

{ { false && echo "inner true"; } && { echo "inner true" && true; } || { echo "inner false" && false; } || echo "outter false"; }

関連情報