arrays - 如何将数组传递给 bash shell 脚本?

标签 arrays linux bash shell unix

如何将数组作为变量从第一个 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/

相关文章:

arrays - 如何获取用户输入的数字并在 bash 脚本中回显该数字的存储数组值

C++14自动推导错误: function returns an array

javascript - 如何在 JavaScript 中将数组作为项目添加到另一个数组中

arrays - swift array removeLast 极慢

bash - Bash 中的双引号与 Asterisk 文件名扩展

python - 通过调用打印 $env :myVar=myvalue 的 python 脚本在 powershell 中设置环境变量

验证数组内容的 Javascript 函数

linux - 构建 Guest Additions 时 CentOS "Kernel configuration is invalid"错误

c - Linux 中 MMAP 值的生命周期

linux - 如何增加新生成进程的 CPU 频率