2017年3月11日

シェルスクリプトでif文を使うには?

条件判定の定番if文。もちろんBashでも使えます。基本的な構文は次のとおりです。

if 条件式
  then
    条件式が真の場合の処理
  else
    条件式が偽の場合の処理
fi

インデントは不要ですが、読みやすくするために入れた方がよいでしょう。末尾を「fi」で締めるのをお忘れなく。条件式にはtestコマンド([ ])がよく使われます。

例を見ておきましょう。ログイン時の初期化ファイル~/.profileを見てみます。

if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

-fはファイルの存在判定です。ホームディレクトリに「.bashrc」ファイルがあれば(ファイルの存在が真ならば)、「.」コマンド(sourceコマンド)を使って.bashrcファイルの処理を実行します。

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

これも~/.profileに登場するif文です。-dはディレクトリの存在判定です。ホームディレクトリに「bin」ディレクトリがあれば、PATH変数に「$HOME/bin」を追加します。



0 件のコメント:

コメントを投稿