为什么我
/tmp/test: line 4: 0=Done: command not found
从下面
a="0"
while [ true ]; do
$a="Done"
exit
done
echo $a
我原以为它会输出Done
。
答案 0 :(得分:3)
当定义变量时,只有在您访问变量时,才需要使用$
。
您需要将定义变量a
的行更改为:
a="Done"
至于解释,我认为这里发生的事情是$a
正在被解析为0
,然后shell将整个0=Done
视为单个(未完成)命令。访问未定义的变量仍会返回0
退出代码。