Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:向函数发送关联数组_Bash_Hashtable - Fatal编程技术网

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?如果这不起作用,或者不能提供在代码中查找什么的线索,那么我建议您提出一个新问题,并展示您尝试的代码、结果以及预期结果。