ペン太
シェルスクリプトのif文って、どうやって書くんだっけ?
そんなお悩みを解決します。
今回この記事では、シェルスクリプトにおけるif文の書き方についてご紹介します。
- シェルスクリプトのif文について
- 数値の比較
- 文字列の比較
- ファイルの存在を確認
- ディレクトリかどうかを確認
- ファイルが空かどうかを確認
- ファイルの読み書き権限を確認
- 複数の条件をANDで結合
- 複数の条件をORで結合
- 論理反転
- 変数が空かどうかを確認
- 変数が空でないかを確認
- 変数が数値かどうかを確認
- 変数が正の数かどうかを確認
- 変数が負の数かどうかを確認
- 正規表現を使った文字列比較
- コマンドの実行結果を使った条件判定
- 文字列の部分一致を確認
- AND条件を直接使った場合
- OR条件を直接使った場合
- コマンドの成功判定
- 変数が配列かどうかを確認
- コマンドライン引数の数を確認
- ファイルのサイズを確認
- 変数が空白文字だけでないことを確認
- 変数が特定の文字列で始まることを確認
- 変数が特定の文字列で終わることを確認
- 変数が特定の文字列を含むかどうかを確認
- まとめ
シェルスクリプトのif文について
シェルスクリプト(shell script)において、if文はプログラムの動作を条件が真か偽かによってその後実行する処理を切り替える際に利用する必須構文です。
本記事では、シェルスクリプトにおけるif文の書き方を詳細に解説します。以下にif文でよく使う例を示します。これらは一般的なシェルスクリプトでよく使用されるもので、私もよく利用していますので、ぜひ参考にしていただければと思います。
シェルスクリプトの条件文について理解を深め、効果的なプログラムを作成するためのノウハウを獲得しましょう。
数値の比較
if [ "$num1" -eq "$num2" ]
then
# 条件が真の場合の処理
fi
文字列の比較
if [ "$str1" = "$str2" ]
then
# 条件が真の場合の処理
fi
ファイルの存在を確認
if [ -e "$file_path" ]
then
# ファイルが存在する場合の処理
fi
ディレクトリかどうかを確認
if [ -d "$directory_path" ]
then
# ディレクトリが存在する場合の処理
fi
ファイルが空かどうかを確認
if [ -s "$file_path" ]
then
# ファイルが空でない場合の処理
fi
ファイルの読み書き権限を確認
if [ -r "$file_path" ] && [ -w "$file_path" ]
then
# 読み書きが可能な場合の処理
fi
複数の条件をANDで結合
if [ "$var1" -eq 10 ] && [ "$var2" = "string" ]
then
# 両方の条件が真の場合の処理
fi
複数の条件をORで結合
if [ "$var1" -eq 10 ] || [ "$var2" = "string" ]
then
# どちらかの条件が真の場合の処理
fi
論理反転
if ! [ "$var" = "value" ]
then
# 条件が偽の場合の処理
fi
変数が空かどうかを確認
if [ -z "$var" ]
then
# 変数が空の場合の処理
fi
変数が空でないかを確認
if [ -n "$var" ]
then
# 変数が空でない場合の処理
fi
変数が数値かどうかを確認
if [ "$var" -eq "$var" ] 2>/dev/null
then
# 変数が数値の場合の処理
fi
変数が正の数かどうかを確認
if [ "$var" -gt 0 ] 2>/dev/null
then
# 変数が正の数の場合の処理
fi
変数が負の数かどうかを確認
if [ "$var" -lt 0 ] 2>/dev/null
then
# 変数が負の数の場合の処理
fi
正規表現を使った文字列比較
if [[ "$str" =~ ^[0-9]+$ ]]
then
# 変数が数値の場合の処理
fi
コマンドの実行結果を使った条件判定
if grep -q "pattern" "$file"
then
# ファイル内にパターンが見つかった場合の処理
fi
文字列の部分一致を確認
if echo "$str" | grep -q "pattern"
then
# 文字列にパターンが含まれている場合の処理
fi
AND条件を直接使った場合
if [ "$var1" -eq 10 -a "$var2" = "string" ]
then
# 両方の条件が真の場合の処理
fi
OR条件を直接使った場合
if [ "$var1" -eq 10 -o "$var2" = "string" ]
then
# どちらかの条件が真の場合の処理
fi
コマンドの成功判定
if command
then
# コマンドが成功した場合の処理
fi
変数が配列かどうかを確認
if [ -v array_var ]
then
# 変数が配列の場合の処理
fi
コマンドライン引数の数を確認
if [ $# -eq 3 ]
then
# コマンドライン引数が3つの場合の処理
fi
ファイルのサイズを確認
if [ -s "$file_path" ]
then
# ファイルサイズが0より大きい場合の処理
fi
変数が空白文字だけでないことを確認
if [ -n "${var// /}" ]
then
# 変数が空白文字以外を含む場合の処理
fi
変数が特定の文字列で始まることを確認
if [[ "$var" == "prefix"* ]]
then
# 変数が"prefix"で始まる場合の処理
fi
変数が特定の文字列で終わることを確認
if [[ "$var" == *"suffix" ]]
then
# 変数が"suffix"で終わる場合の処理
fi
変数が特定の文字列を含むかどうかを確認
if [[ "$var" == *"substring"* ]]
then
# 変数が"substring"を含む場合の処理
fi
まとめ
当記事では、シェルスクリプトのif文の書き方についてご紹介しました。
シェルスクリプトを実装するにあたって、if文は必須構文になるので、当記事を通してシェルスクリプトのif文の実装のお役に立てたら幸いです。