if文の条件式の中で使われる 「-z」や「-n」は変数が文字列の時に中身が空かそうでないかを判別する便利なオプションです。
zオプション
zオプションは文字列の長さが0の時にtrueになります。
if [ -z ${hoge}]; then
処理
fi
実例
#!/bin/bash
function stringCheck {
if [ -z ${1} ]; then
echo "true"
else
echo "false"
fi
}
x="123"
stringCheck $x
実行結果
$ ./test.sh
false
[ ]とは?
ifの条件式の[ -z ${1} ];
の[ ]
は中の式を評価して、trueかfalseを返します。
※[ ]と式の間には半角スペースが必須。
厳密にはtestコマンドの代替です。if test -z ${1};
と書くのと同じです。
${1}とは?
$1や$2は関数に渡された引数を呼び出す変数です。
${1}の{ }
は変数を明示するために使います。ここでは $1 = ${1}
です。
$1234
だと1234番目の変数ですが、${1}234
だと1番目の変数と数値234になります。
変数の定義方法
シェルスクリプトて変数を定義する時は $は不要です。「変数=値」とします。
※イコールの前後に空白を入れるとエラーになります。
nオプション
nオプションは文字列の長さが1以上の時にtrueになります。
if [ -n ${hoge}]; then
処理
fi
実例
#!/bin/bash
function stringCheck {
if [ -n ${1} ]; then
echo "true"
else
echo "false"
fi
}
x="123"
stringCheck $x
実行結果
$ ./test.sh
true