arrays - 将数组作为 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"
。为什么会发生这种情况,我该如何解决这个问题?
解决方案
推荐阅读
- python - Python Telegram API 在尝试编辑消息媒体时引发无用的错误
- list - SwiftUI - 使列表分隔线扩展到触摸屏边缘
- spring-boot - mvn clean install Ubuntu 终端
- python - 将 Pandas df 混合数据列解析为日期时间
- html - 根据另一个div中的类将类添加到div
- reactjs - 在提交按钮上呈现反应 js 中的内容
- django - 是否可以将模板变量传递给 django 模板标签
- javascript - 如何在模式中使用从 handleSubmit 函数返回的数据来显示用户输入的内容?
- python - 如何设置坐标以将屏幕的特定部分显示为中心 - pygame
- flutter - 在 Flutter 中使用 ARCore 和 ARkit 进行室内导航