我的整个剧本目前是这样的:
#!/bin/sh
clear;
blanko="";
# Dummy-Variablen
variable=Testvariable;
if [[$variable == $blanko]];
then
echo "Nichts da!"
else
echo $variable
fi
如果我输入
TestSelect.sh
我得到了
/usr/bin/TestSelect.sh: line 6: [[Testvariable: command not found
Testvariable
我该如何解决这个问题?
答案 0 :(得分:92)
这是问题:
if [[$variable == $blanko]];
方括号内需要空格,使用方式如下:
[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
答案 1 :(得分:8)
在相关的说明中,[ ]
周围也需要空格:
if [ "$variable" = "$blanko" ]; then
# more code here
fi
请注意,变量确实需要用[ ]
内的双引号括起来,以防止单词拆分和通配。当没有设置任何被比较的变量时,双引号也有帮助 - 否则shell将抛出语法错误。
请查看以下帖子,了解为什么我们需要[ ]
周围的空格:
另一篇相关文章讨论了其他需要空格的语法元素:
最后,这篇文章讨论了[[ ]]
和[ ]
:
相关:
答案 2 :(得分:0)
如果您正在使用bash脚本,例如:#!/bin/bash
比较字符串并使用if [[ $partition == "/dev/sda2" ]]; then
或./scriptname.sh
bash scriptname.sh
。
答案 3 :(得分:0)
如果脚本通过/bin/bash
在本地运行,而不是通过sh
在容器上运行,则可以考虑通过apk add --no-cache bash
在容器上添加bash。