LoginSignup
0
1

More than 5 years have passed since last update.

bash で条件判定組みたい時

Last updated at Posted at 2017-02-05

参考 http://shellscript.sunone.me/if_and_test.html

bash職人じゃなくてもたまには bash のワンライナーくらい書かなきゃいけないときってのがある。

デプロイ用に一行のコマンドを指定したい時、なんかはまさにそれだ。

composer のpostinstall とか npm run script とか…

bash で条件判定を組みたい時

bash で条件判定を組みたい時にはいくつかパターンが有る。

  • if 文を使う
  • test コマンドと && を使う
  • [ ] 記法と && を使う

1行で何かしらの処理を表現しようとする時、多分2番めや3番めの記法が一番綺麗で楽だったりする。

環境変数 $APP_DEBUG を元に処理の切り分けを行いたいときなど以下のようにかける。

[ $APP_DEBUG ] && echo "this is debug mode!"
[ $APP_DEBUG ] || echo "this is production mode!"

単純に処理を実行させるだけならコレでも全然問題無いのだが、実際コレをCIのデプロイツールなどと組み合わせると、終了コードが1になるとかでビルドがコケるケールが出てくる。

こうした場合は、多少冗長でも if を使った記法を使うほうが良さそう。

if [ $APP_DEBUG ]   ; then npm run build:dev ;fi
if [ ! $APP_DEBUG ] ; then npm run build:production; fi
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1