见下文:
1. if [ $var1 == "result" ] 2,3. if [ -z $var ]
我在bash 4.4版中遇到了这个警告 有谁知道这个?请详细说明。感谢。
答案 0 :(得分:2)
尝试:
"$var1" == "result"
并且:
-z "$var1"
当$ var1不存在时,测试不起作用,通过用"""""因此,如果它们不存在,则与空变量
进行比较答案 1 :(得分:1)
问题在于您的$var
包含空格。因此,这些空格将出现在if中,就像它们分离参数/值一样。要解决此问题,请使用"$var"
,其中所有空格都连接成唯一值。
因此,如果var1
绑定到shell中的foo bar
,则[ $var1 = "result" ]
test(1)内部会扩展为4个参数:foo
, bar
,=
,result
但=
是二进制文件,并且每边只需要一个参数(因此您会遇到“太多参数”或“二进制”这样的错误运营商预期“)