Bash变量赋值不能正常工作

时间:2013-12-18 22:47:40

标签: linux bash

status=0
$status=1

echo $status

任何人都可以告诉我我的错误吗?

它给了我以下错误:

 0=1: command not found

4 个答案:

答案 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
相关问题