【发布时间】:2020-06-09 07:51:22
【问题描述】:
我正在尝试使用关联数组来解决 Bash 糟糕的函数参数传递问题。我可以声明一个全局关联数组并对其进行读/写,但我希望将变量名传递给函数,因为很多时候我想将同一个函数与不同的参数块一起使用。
各种堆栈溢出帖子都有读取函数中传递的数组但不写入它以允许返回值的方法。因此,我正在尝试做的 Pseudo Bash 是:
TestFunc() {
local __PARMBLOCK__=${1} # Tried ${!1} as well
# Do something with incoming array
__PARMBLOCK__[__rc__]+=1 # Error occured
__PARMBLOCK__[__error__]+="Error in TestFunc"
}
declare -A FUNCPARM
# Populate FUNCPARM
TestFunc FUNCPARM
if [[ ${FUNCPARM[__rc__]} -ne 0 ]]; then
echo "ERROR : ${FUNCPARM[__error__]}
fi
这种事情可能吗,还是我真的需要放弃 Bash 来使用 Python 之类的东西?
【问题讨论】:
标签: bash function associative-array