[英]Using global variables in functions with parameters in bash
我试图从 bash 中的函数中捕获返回值,该函数修改了一个全局变量。 与没有参数的函数完美配合:
#!/bin/bash
tes=2
testfunction(){
tes=3
tes_str="string result"
return 0
}
if output=testfunction; then
echo "OK"
else
echo "KO"
fi
echo $tes
echo $tes_str
但没有参数:
#!/bin/bash
tes=2
testfunction(){
tes=3
tes_str="string result"
return 0
}
if output=$(testfunction "AA" "BB"); then
echo "OK"
else
echo "KO"
fi
echo $tes
echo $tes_str
因为对于bash,参数(“AA”或“BB”)是一个命令,我必须把它放在backets中(但如果使用backets,则不能修改全局变量)。 我该怎么做? 我被卡住了。 问候
为什么使用output
? 只需删除它并运行该功能。
if testfunction; then
笔记:
output=testfunction
将文本testfunction
分配给变量output
。output=$(testfunction)
将不起作用,因为$(...)
在子外壳内运行所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.