【发布时间】:2014-05-28 12:17:20
【问题描述】:
像运行我的 shell 脚本 (/bin/sh)
./test.sh wf1 wf2 wf3
产生以下错误:
[: missing `]'
这是我的代码:
[...]
string="HELLO"
for i in "$@" ;do
if [ "$i" -eq "ciao"]; then
echo "$stringa" > $i
fi
done
[...]
为什么?
【问题讨论】:
-
[和]周围需要空格。只需[ "$i" -eq "ciao" ]。 -
@fedorqui Spaces 是的,但这不起作用 -
ciao不是整数 ;-) -
with [ "$i" -eq "ciao" ] 我有这个错误:[: ciao: integer expression expected
-
正如@AdrianFrühwirth 正确指出的那样,您需要对字符串进行字符串比较:
[ "$i" == "ciao" ]。相反,您使用的是指整数比较的-eq。 -
另外,请注意,在上面的测试命令之后有一个反引号 (`)。反引号保留用于命令替换 - 如果你真的希望它作为你的第三个参数的一部分,它必须被转义: wf3\' 可能只是一个错字。