Bash:从函数变量更新父变量

时间:2014-10-18 09:52:01

标签: bash

我想更新变量a变为2.但结果始终是1.无论如何都要这样做吗?

a=1
aple(){
        a=2
        echo "apel"
}
b=`aple`
echo $a

1 个答案:

答案 0 :(得分:1)

问题出在这个电话中:

b=`aple`

在子shell中调用aple函数,因此子shell中的更改会丢失,在父shell中不可见。

将您的功能称为:

aple
echo $a
2

根据您的意见,如果您想为b分配值,请将您的功能设为:

a=1
b=
aple() { a=2; b="apel"; }

然后将其称为:

aple
echo "$b:$a"
apel:2