no_picture

シェルの if を1行でかく

すごい広島 59 のメモ sensu の実験をしていて実行する command に if を含むスクリプトをかいていたのだけど、ちょっとはまったのでメモしとく。 以下のようなスクリプトを1行で書きたいとする。 HTTP_STATUS=`curl -w '%{http_code}' -s http://blog.eiel.info/ -o /dev/null` if [ $HTTP_STATUS -eq 200 ] then echo -n $STATUS else echo -n $STATUS; exit 1 fi 1行で書くとこうなる。 HTTP_STATUS=`curl -w '%{http_code}' -s http://blog.eiel.info/ -o /dev/null`; if [ $HTTP_STATUS -eq 200 ]; then echo -n $STATUS; else echo -n $STATUS; exit 1; fi then と else のすぐ後ろにはセミコロンがあってはいけないらしい。 整理すると if [test]; then command1; else command2;