シェルスクリプトで変数が空文字であるか調べる
シェルスクリプトで変数が空かどうかを調べる
シェルスクリプトで変数に値が入っているか調べるには、testコマンドやif分で変数の値を比較して調べることができます。
testコマンドで変数が空文字であるか調べる
testコマンドで「-n」を使えば、変数に値が入っているかを判断して、値が入っていると「真」を返します。
変数に値が入っている場合に、処理をしたい場合は以下のようになります
#!/bin/bash str="123" if [ -n "$str" ]; then echo "str: $str に値が入っています" else echo "str は値は入っていません" fi $ sh test.sh str: 123 の値が入っています
変数に値が入っていない場合は、「偽」となり以下のようになります
#!/bin/bash str="" if [ -n "$str" ]; then echo "str: $str の値が入っています" else echo "str は値は入っていません" fi $ sh test.sh str は値は入っていません
変数に値が入っていない場合に処理を実行したい場合は、「-z」を使えば変数が空の場合の処理ができます
#!/bin/bash str="" if [ -z "$str" ]; then echo "str に値は入っていません" else echo "str: $str の値が入っています" fi $ sh test.sh str に値は入っていません
if分で変数が空文字かどうか判定する
if分の方が見た感じでは分かりやすいような気がします、変数の値の空白かどうかを「"$str" = “"」で比較して処理します
変数に値が入っていない場合に処理をしたい場合は、以下となります
#!/bin/bash str="" if [ "$str" = "" ]; then echo "str に値は入っていません" else echo "str: $str の値が入っています" fi $ sh test.sh str に値は入っていません
また、変数に値が入っている場合に処理をしたい場合は、以下となります
$ cat test.sh #!/bin/bash str="test" if [ "$str" != "" ]; then echo "str: $str の値が入っています" else echo "str に値は入っていません" fi $ sh test.sh str: test の値が入っています
ディスカッション
コメント一覧
まだ、コメントがありません