0

我想知道字符串变量是否为空。我通过将变量与文字空字符串 ( "") 进行比较来做到这一点。

这是我的代码:

var=$1

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

$1当是""(没有命令行参数)时,它给了我这个错误:

./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谓词 which test for non-emptiness):if [ -n "$var" ]; then...

需要双引号$var

于 2013-02-15T16:15:00.790 回答