【发布时间】:2021-01-28 22:54:09
【问题描述】:
我想在 bash 脚本之间传递一个数组和一个关联数组。
我尝试按照下面的示例发送参数,但收到错误消息:
./b.sh:第 3 行:${1[@]}:错误替换
我该怎么做?
例子:
调用其他脚本 b.sh 的第一个脚本 a.sh
a.sh
#!/usr/bin/bash -x
declare -a array=("a" "b")
declare -A associative_array
associative_array[10]="Hello world"
./b.sh "${array[@]}" $associative_array
b.sh
#!/usr/bin/bash
declare -a array="${1[@]}"
declare -A associative_array="$2"
echo "${array[@]}"
echo "${associative_array[10]}"
【问题讨论】:
-
@TedLyngmo 不,这是错误消息。
-
对不起,我错过了你的一半问题,所以我删除了该评论。 :-) 两个数组都在我的回答中被实例化了。
-
你可以考虑
source ./b.sh,这样b.sh就可以直接访问这两个数组了。 -
搜索
[bash] pass associative array时有122个Q/A。 stackoverflow.com/questions/5564418/… 看起来有与您的问题直接相关的答案。请先学会搜索。祝你好运。