if文を短く書き換え
シェルスクリプトで
1 2 3 4 5 |
|
みたいな文をAND(&&
)を使って
1 2 3 |
|
こんな風に短く出来ます。
終了ステータスが違う
上の二つは同じ様な機能を持つので、
この切替はなんとく見た目が良い感じになるように、の程度でやってましたが、
n
が1でない時に終了ステータスが変わります。
上の場合はif文にはn
が整数である限り間違いはないのでこの部分は正常終了し
if文後は$?
が0になってます。
一方、下の方は最初の判定が偽でその時点で下に行くので$?
は
失敗ステータスの1が入ってます。
それ程終了ステータスを使う事はないかもしれませんが、 スクリプトの最後に
1 2 |
|
的な、まとめを場合によっては表示する、みたいなスクリプトだったりすると、 普段この表示を止めてる場合にスクリプトの終了ステータスが0で 無くなってしまったりすることも。
ステータスを見る様なスクリプトはきちんとexit 0
とか関数ならreturn 0
しとくべきですが割りと適当にやってると忘れてしまうので注意、と。
おまけ: 三項演算子にしてしまう
上の様に変換するときに最後に|| :
を付けて
1
|
|
としてやれば、verbose
が1より小さい時は:
が実行されて(つまり何もされない)
終了ステータスが0になるのでif文と同じ様にも出来るな、とも。
Sponsored Links