inuxのシェルスクリプトで変数が空かどうかの確認する

Linuxのシェルスクリプトで変数が空かどうかを判定するには、-z オプションを使用します。

基本的な判定方法

変数が空(長さが0、または未定義)の場合に処理を実行する場合は、if [ -z "$変数名" ] と記述します

#!/bin/bash

# 空の変数
VAR=""

if [ -z "$VAR" ]; then
    echo "変数は空です"
fi

主要な判定パターンの一覧

目的の条件に合わせて、以下のオプションや記述を使い分けてください。

判定したい条件記述例判定の挙動
変数が空のときに真if [ -z "$VAR" ]; then長さが0、または未定義なら成立
変数が空でないときに真if [ -n "$VAR" ]; then1文字以上の値が入っていれば成立
変数が未定義のときに真if [ ! -v VAR ]; then変数自体が存在しなければ成立(※Bash 4.2+)

※ Bash 4.2+は、RHEL7以降で利用されています

記述する際の重要な注意点

変数は必ずダブルクォーテーション "" で囲む
"$VAR" のように囲まないと、変数が空だった場合に if [ -z ] となり、構文エラー(演算子の不足など)の原因になります。


[] の前後には必ずスペースを空ける
[ はLinuxの「コマンド」として扱われるため、if [-z "$VAR"] のようにスペースを詰めるとエラーになります。


-v オプションの引数には $ をつけない
変数の存在自体を調べる -v オプションを使う場合は、$VAR ではなく VAR と変数名だけを指定します

\ 最新情報をチェック /

コメントを残す

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