Bash:向函数发送关联数组
可能重复:Bash:向函数发送关联数组,bash,hashtable,Bash,Hashtable,可能重复: 我声明我的哈希数组: declare -A some_array 我宣布我的职能: some_function() { .. } 如何将数组作为参数发送给函数以访问它 我知道我可以把它作为一个全局变量使用,但是当我有很多散列数组想要和一些函数一起使用时,这不是解决问题的办法 如果没有办法,我如何将一个哈希数组值分配给另一个哈希数组值?将其作为全局变量访问(只需在函数中按名称引用)。没有数组传入Bash。有一些笨拙的技术试图做到这一点,但我建议避免混乱 其他选项包括使用Pyt
我声明我的哈希数组:
declare -A some_array
我宣布我的职能:
some_function() {
..
}
如何将数组作为参数发送给函数以访问它
我知道我可以把它作为一个全局变量使用,但是当我有很多散列数组想要和一些函数一起使用时,这不是解决问题的办法
如果没有办法,我如何将一个哈希数组值分配给另一个哈希数组值?将其作为全局变量访问(只需在函数中按名称引用)。没有数组传入Bash。有一些笨拙的技术试图做到这一点,但我建议避免混乱 其他选项包括使用Python或Perl等语言编写整个脚本,这些语言支持传递数组、哈希或它们的引用
在Bash 4.3或更高版本中,您可以使用,但有。将其作为全局变量访问(只需在函数中按名称引用)。没有数组传入Bash。有一些笨拙的技术试图做到这一点,但我建议避免混乱 其他选项包括使用Python或Perl等语言编写整个脚本,这些语言支持传递数组、哈希或它们的引用
在Bash4.3或更高版本中,您可以使用,但是有。这似乎不起作用。更改可能在函数内可见,但在函数外丢失。@user1167662:是否在函数内声明了数组?这使它成为函数的局部。如果你在外部声明它,那么它是全局的。我尝试了函数的内部和外部。我还尝试了
declare-gA var_name
,我知道这应该使变量具有全局作用域,但这也没有奏效。@user1167662:这个代码段的工作原理与广告中的一样:declare-A arr;my_func(){arr['customer']=$1;};我的函数鲍勃;printf'%s\n'${arr['customer']};声明-p arr
。这对你有用吗?什么版本的Bash?如果这不起作用,或者没有提供在代码中查找什么的线索,那么我建议您提出一个新问题,并显示您尝试的代码、结果以及预期结果。这似乎不起作用。更改可能在函数内可见,但在函数外丢失。@user1167662:是否在函数内声明了数组?这使它成为函数的局部。如果你在外部声明它,那么它是全局的。我尝试了函数的内部和外部。我还尝试了declare-gA var_name
,我知道这应该使变量具有全局作用域,但这也没有奏效。@user1167662:这个代码段的工作原理与广告中的一样:declare-A arr;my_func(){arr['customer']=$1;};我的函数鲍勃;printf'%s\n'${arr['customer']};声明-p arr
。这对你有用吗?什么版本的Bash?如果这不起作用,或者不能提供在代码中查找什么的线索,那么我建议您提出一个新问题,并展示您尝试的代码、结果以及预期结果。