Eps*_*pha 50 string syntax bash if-statement compare
我的整个脚本目前是这样的:
#!/bin/sh
clear;
blanko="";
# Dummy-Variablen
variable=Testvariable;
if [[$variable == $blanko]];
then
echo "Nichts da!"
else
echo $variable
fi
Run Code Online (Sandbox Code Playgroud)
如果我进入
TestSelect.sh
Run Code Online (Sandbox Code Playgroud)
我明白了
/usr/bin/TestSelect.sh: line 6: [[Testvariable: command not found
Testvariable
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
anu*_*ava 102
这是个问题:
if [[$variable == $blanko]];
Run Code Online (Sandbox Code Playgroud)
方括号内需要空格,使用方式如下:
[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
Run Code Online (Sandbox Code Playgroud)
在相关的说明中,还需要空格[ ]:
if [ "$variable" = "$blanko" ]; then
# more code here
fi
Run Code Online (Sandbox Code Playgroud)
请注意,变量确实需要用双引号括起来,[ ]以防止单词拆分和通配.当没有设置任何被比较的变量时,双引号也有帮助 - 否则shell会抛出语法错误.
查看以下帖子,了解为什么我们需要空间[ ]:
另一篇相关文章讨论了其他需要空格的语法元素:
最后,约之间的差异这篇文章的会谈[[ ]]和[ ]:
有关: