首页 > 解决方案 > 将数组作为 bash 脚本变量传递

问题描述

我有一个需要为一系列文件运行的 bash 脚本。该脚本有 4 个参数。第一个ref是文件,fun是一个目录,R1arr每个R2arr都是数组,其中包含给定目录中具有特定功能的一系列文件。

script.sh的如下:

ref="$1"
fun=$2
R1arr="$@"
R2arr="$@"

analyseReads -i "$ref" -o "$fun" --left "${R1arr[@]}" --right "${R2arr[@]}"

我为各种文件运行它,如下所示:

FORWARD=($(for i in Sample_STE*/*R1; do echo $i; done))
REVERSE=($(for i in Sample_STE*/*R2; do echo $i; done))

bash script.sh "$ref" "$fun" "${FORWARD[@]}" "${REVERSE[@]}"

我收到一个错误,因为"${FORWARD[@]}"and"${REVERSE[@]}"不仅包含数组中的文件,FORWARD而且REVERSE还包含"$ref"and "$fun"。为什么会发生这种情况,我该如何解决这个问题?

标签: arraysbashvariables

解决方案


推荐阅读