gpt4 book ai didi

bash - 全局变量值未在 shell 脚本中的函数内设置

转载 作者:行者123 更新时间:2023-12-05 04:16:36 26 4
gpt4 key购买 nike

我有如下两个 shell 脚本:

a.sh

tes=2
testfunction(){
tes=3
echo 5
}
testfunction
echo $tes

b.sh

tes=2
testfunction(){
tes=3
echo 5
}
val=$(testfunction)
echo $tes
echo $val

在第一个脚本中,tes 值如预期的那样是“3”,但在第二个脚本中是 2?

为什么会这样?

$(funcall) 是否正在创建一个新的子 shell 并执行函数?如果是,如何解决这个问题?

最佳答案

$() 和 `` 创建新的 shell 并返回输出作为结果。

使用 2 个变量:

tes=2
testfunction(){
tes=3
tes_str="string result"
}
testfunction
echo $tes
echo $tes_str

输出

3
string result

关于bash - 全局变量值未在 shell 脚本中的函数内设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com