変数がセットされていることを調べる
下記の例では、変数 NAME がセットされているかどうか調べています。
#!/bin/bash
if [ -n "$NAME" ]; then
echo $NAME
fi$ ./sample.sh
$ NAME=maku ./sample.sh
maku
変数がセットされていないことを調べる
下記の例では、変数 NAME がセットされていないことを調べています。
#!/bin/bash
if [ -z "$NAME" ]; then
echo 'NAME is not set'
fi$ ./sample.sh
NAME is not set
$ NAME=maku ./sample.sh
仕組みの解説
test や [ ... ] 構造で使用できる演算子に下記のようなものがあります。
-z 文字列- 文字列の長さが 0 の場合に真-n 文字列- 文字列の長さが 0 でない場合に真
変数の値を "$NAME" という構文で確実に文字列になるように展開し、上記の演算子でその文字列の長さをチェックすることにより、変数がセットされている(あるいはセットされていない)ことを調べることができます。