複雑なシェルスクリプトを作る

私が思考停止してシェルから逃げる傾向があったので深掘り。シェルだけで完結すれば最終的な作業時間が減るから良いしどこでも動く。

&&||で成功と失敗時の処理を記述

&&は成功した時、||は失敗した時に繋がる。

まずはエラーを返す的なシェルを作って保存する。

exit 1

下記のような処理を実行すると13となる

$ echo 1 && sh hoge.sh && echo 2 || echo 3 || echo 4
1
3

ということは、下記の場合は12となりそうだが、124となる。

$ echo 1 && sh hoge.sh || echo 2 || echo 3 && echo 4
1
2
4

ということは135になるのかと思えばそのとおり!

$ echo 1 && sh hoge.sh && echo 2 || echo 3 || echo 4 && echo 5
1
3
5

グルーピングすると思考しやすい。

$ echo 1 && sh hoge.sh && echo 2 || echo 3 || (echo 4 && echo 5)
1
3

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA