如何将数组作为变量从第一个 bash shell 脚本传递到第二个脚本。
首先.sh#!/bin/bash
AR=('foo' 'bar' 'baz' 'bat')
sh second.sh "$AR" # foo
sh second.sh "${AR[@]}" # foo
第二个.sh
#!/bin/bash
ARR=$1
echo ${ARR[@]}
在这两种情况下,结果都是 foo
。但我想要的结果是foo bar baz bat
.
我做错了什么以及如何解决它?
最佳答案
使用
sh second.sh "${AR[@]}"
将数组元素拆分为不同的参数,即
sh second.sh "${A[0]}" "${A[1]}" "${A[2]}" ...
并在second.sh
中使用
ARR=("$@")
将命令行参数收集到数组中。
关于arrays - 如何将数组传递给 bash shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36808024/