shell - 将字符串与变量(字符串或数字)进行比较

时间:2013-02-15 16:11:40

标签: shell string-comparison

我想知道字符串变量是否为空。我通过将变量与文字空字符串("")进行比较来完成此操作。

这是我的代码:

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的不同组合
  5. 我希望能够将字符串变量(空或不)与""进行比较。

1 个答案:

答案 0 :(得分:2)

你应该在开始括号([)后面留一个空格,因为它是一个命令名。

最接近你自己的方式:if [ "$var" = "" ]; then...

另一种方法(-n谓词测试非空虚):if [ -n "$var" ]; then...

需要$var左右双引号。