
重複した質問なら事前にお詫び申し上げます。ここに質問する前に検索/確認しようとしました。
私は次のようなクイフを書きたいと思います。
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
コンテンツを便利なエラーメッセージに置き換えて終了することです。もちろん。return
exit
答え4
入れ子になったステートメントの使用を検討してくださいif
。他のオプションは、グループ化にカールを使用することです。{ true && echo hi; } || echo huh
アップデート1:
改行/コメントがない例は次のとおりです。
{ { false && echo "inner true"; } && { echo "inner true" && true; } || { echo "inner false" && false; } || echo "outter false"; }