shell - 将字符串与变量(字符串或数字)进行比较
我想知道字符串变量是否为空。我通过将变量与字面空字符串(""
)进行比较来完成此操作。shell - 将字符串与变量(字符串或数字)进行比较
这里是我的代码:
var=$1
if [$var == ""]; then
echo "\$var is $var"
fi
它给了我这个错误时$1
是""
(无命令行参数(S)):
./script.sh: line 5: [: ==: unary operator expected
当$1
有一个价值,它的工作原理精细。
我试过下面的东西,他们仍然给了我一个错误:
- 更改
==
到-eq
。 - 周围
$var
与""
。 - 把
space
放在""
的内部使其成为" "
。 - 1-3
不同组合我希望能够给一个字符串变量(空或不)与""
比较。
因为它是一个命令名称,所以在前面的括号([
)之后应该总是有一个空格。
的方式来最接近做你自己:if [ "$var" = "" ]; then...
另一种方式来做到这一点(-n
断言其测试非空):if [ -n "$var" ]; then...
双引号$var
是必需的。
宾果!谢谢! – 2013-02-15 16:21:40
为了保持与原始测试相同的意义,您希望使用'[-z“$ var”]'(-z:如果参数为零长度字符串,则为true) – William 2013-02-15 17:09:01
您正在使用哪个外壳? – iamnotmaynard 2013-02-15 16:13:53