anothervar = 1
while [$anothervar -lt 1 ] do
read a
if [ 42 = $a ]; then
$anothervar = 2
else
echo $a
fi
done
获取第9行:意外令牌附近的语法错误`done'错误。
我做错了什么?
答案 0 :(得分:2)
如果将shell脚本粘贴到ShellCheck,您将看到shell脚本第2行的以下两个shell脚本分析消息:
自动shell脚本分析建议对第2行进行两次更正并将第一行更改为anothervar=0
以便执行while循环中的命令后,您的shell脚本是:
anothervar=0
while [ $anothervar -lt 1 ]; do # fixes 2 errors in this line
read a
if [ 42 = $a ]; then
anothervar=2
else
echo $a
fi
done
答案 1 :(得分:1)
可替换地:
anothervar=0
while [[ $anothervar -lt 1 ]]
do
read a
if [[ 42 = $a ]]
then
anothervar=2
else
echo $a
fi
done
Voila,没有分号,变量中的空格不再困扰你了。 ; - )