status=0
$status=1
echo $status
任何人都可以告诉我我的错误吗?
它给了我以下错误:
0=1: command not found
答案 0 :(得分:4)
这一行没问题 - 它将值0赋给变量status
:
status=0
这是错误的:
$status=1
将$
放在变量名称前面,然后取消引用它,即获取其值,在本例中为0
。换句话说,bash
正在扩展你所写的内容:
0=1
这没有任何意义,因此错误。
如果您打算将新值1
重新分配给状态变量,那么只需将其与原始分配相同:
status=1
答案 1 :(得分:1)
Bash分配不能在前面有一美元。 bash中的变量替换就像C中的宏扩展一样;它们在任何解析之前发生。例如,这件可怕的事情有效:
foof="[ -f"
if $foof .bashrc ] ; then echo "hey"; fi
答案 2 :(得分:0)
在bash中实际使用变量时仅使用$
。在分配或重新分配时省略它。
e.g。
status=0
status2=1
status="$status2"
答案 3 :(得分:0)
这个丑陋的东西也有效:
status='a'
eval $status=1
echo $a
1