0

文字列変数が空かどうかを調べたいのですが。これを行うには、変数をリテラルの空の文字列("")と比較します。

これが私のコードです:

var=$1

if [$var == ""]; then
    echo "\$var is $var"
fi

$1is ""(コマンドライン引数なし)の場合、このエラーが発生します。

./script.sh: line 5: [: ==: unary operator expected

$1値がある場合、正常に機能します。

私は次のことを試しましたが、それでもエラーが発生します。

  1. に変更==-eqます。
  2. $varで囲み""ます。
  3. space中に入れ""て作る" "
  4. 1〜3のさまざまな組み合わせ

文字列変数(空かどうか)を。と比較できるようにしたい""

4

1 に答える 1

2

[コマンド名であるため、開き角かっこ()の後には常にスペースを入れる必要があります。

あなた自身に最も近いそれをする方法:if [ "$var" = "" ]; then...

それを行う別の方法(-n空でないことをテストする述語):if [ -n "$var" ]; then...

二重引用符$varが必要です。

于 2013-02-15T16:15:00.790 に答える