我想知道字符串变量是否为空。我通过将变量与文字空字符串(""
)进行比较来完成此操作。
这是我的代码:
var=$1
if [$var == ""]; then
echo "\$var is $var"
fi
当$1
为""
时(无命令行参数),它会给我这个错误:
./script.sh: line 5: [: ==: unary operator expected
当$1
有值时,它可以正常工作。
我尝试过以下事情但他们仍然给我一个错误:
==
更改为-eq
。$var
周围""
。space
内加""
使其成为" "
。我希望能够将字符串变量(空或不)与""
进行比较。
答案 0 :(得分:2)
你应该在开始括号([
)后面留一个空格,因为它是一个命令名。
最接近你自己的方式:if [ "$var" = "" ]; then...
另一种方法(-n
谓词测试非空虚):if [ -n "$var" ]; then...
需要$var
左右双引号。