2014-10-18 43 views

回答

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 
+0

如果我还想要使用b ='apel',是否有更新它? – tak89 2014-10-18 10:01:26

+0

''''''apel''''''''''''总是会创建一个子shell,因此在父shell中的变化将会丢失。 – anubhava 2014-10-18 10:16:20