よくあるシェルスクリプトの小技【if 編】

よくあるシェルスクリプトの小技【if 編】hosiiのメモ帳どのシェルスリプトでも使うお決まりの処理は結構ある。
しかしながら、いざシェルスクリプトを作成しようとすると
「あの処理ってどう書くんだっけな」
ということが多々ある。

そんなときのために、よくあるシェルスクリプトの小技をメモることにした。
今回は条件分岐で使う「if」が対象。シェルはbashが対象。

if文はエラーチェックやコマンド実行結果の判定でよく使う。
以下使用例。

ファイルの有無をチェック

ifの条件文の中でファイルとディレクトリはともに「-e」で存在を確認できるけど、
どちらなのかも判定したいので「-f」を使う。

if [ ! -f $filename ]; then
   echo 'file not found.' 1>&2
fi

ディレクトリの有無をチェック

if [ ! -e $filename ]; then
   echo 'directory not found.' 1>&2
fi

Webサイトへアクセス可能かチェック

条件文にはコマンドの実行結果も使用できる。
コマンドが成功するとif文に真の値を返し、失敗すると偽の値を返す。

if curl -s 'http://www.yahoo.co.jp' > /dev/null; then
   echo 'Access to Yahoo! succeeded.'
else
   echo 'Access to Yahoo! is failed.'
fi

変数に値が入っているかチェック

「-z」は変数が空だと真を返し、値が入っていると偽を返す。

if [ -z $var1 ]; then
   echo 'var1 is empty.'
else
   echo 'var1 is not empty'
fi

コメントを残す

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