shell-将字符串与变量(字符串或数字)进行比较
我想知道字符串变量是否为空。我通过将变量与文本空字符串(shell-将字符串与变量(字符串或数字)进行比较,shell,string-comparison,Shell,String Comparison,我想知道字符串变量是否为空。我通过将变量与文本空字符串(“”)进行比较来实现这一点 这是我的密码: var=$1 if [$var == ""]; then echo "\$var is $var" fi 当$1为”(无命令行参数)时,它会出现此错误: 当$1有一个值时,它工作正常 我尝试了以下方法,但他们仍然给了我一个错误: 将==更改为-eq 用“包围$var 将空格放在“内,使其成为” 1-3的不同组合 我希望能够将字符串变量(空或非空)与“”进行比较,因为它是一个命令名,所以
“”
)进行比较来实现这一点
这是我的密码:
var=$1
if [$var == ""]; then
echo "\$var is $var"
fi
当$1
为”
(无命令行参数)时,它会出现此错误:
当$1
有一个值时,它工作正常
我尝试了以下方法,但他们仍然给了我一个错误:
==
更改为-eq
“
包围$var
空格
放在“
内,使其成为”
我希望能够将字符串变量(空或非空)与
“
”进行比较,因为它是一个命令名,所以在开始括号([
)后面应该始终有一个空格
最接近您自己的方法:如果[“$var”=”];那么…
另一种方法(-n
测试非空性的谓词):如果[-n“$var”];那么…
需要在
$var
周围加双引号。您使用的是哪个shell?为了保持原始测试的相同含义,您希望使用[-z“$var”]
(-z:如果参数是零长度字符串,则为true)
./script.sh: line 5: [: ==: unary operator expected