我想更新变量a变为2.但结果始终是1.无论如何都要这样做吗?
a=1
aple(){
a=2
echo "apel"
}
b=`aple`
echo $a
答案 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