我想在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_arrayb.sh
#!/usr/bin/bash
declare -a array="${1[@]}"
declare -A associative_array="$2"
echo "${array[@]}"
echo "${associative_array[10]}"发布于 2020-10-14 22:21:31
这将是一个火焰诱饵,因为它使用了邪恶的eval,但在出现更好的解决方案之前,您可能会发现它很有用。在未阅读之前不要使用它。
a.sh
declare -a array=("a" "b")
declare -A associative_array
associative_array[10]="Hello world"
./b.sh "$(declare -p array)" "$(declare -p associative_array)"b.sh
eval "$1"
eval "$2"
echo "${array[@]}"
echo "${associative_array[10]}"https://stackoverflow.com/questions/64354910
复制相似问题