gpt4 book ai didi

linux - 在使 bash 脚本工作时遇到问题

转载 作者:太空狗 更新时间:2023-10-29 12:43:21 24 4
gpt4 key购买 nike

我是 Bash 脚本的新手。我的脚本预期的作用是访问提供的路径,然后对该路径中提供的数据应用一些软件(RTG - 实时基因组学)命令。但是,当我尝试从 CLI 执行 bash 时,出现以下错误

ERROR:There were invalid input file paths

我在脚本中提供的路径是准确的。也就是说,在程序“RTG”所在的原始目录中,我相应地制作了类似 /data/reads/NA19240 的文件夹,并放置了 *_1.fastq*_2.fastq 文件在 NA19240 中。

这是脚本:

#!/bin/bash
for left_fastq in /data/reads/NA19240/*_1.fastq; do
right_fastq=${left_fastq/_1.fastq/_2.fastq}
lane_id=$(basename ${left_fastq/_1.fastq})
rtg format -f fastq -q sanger -o ${lane_id} -l ${left_fastq} -r ${right_fastq} --sam-rg "@RG\tID:${lane_id}\tSM:NA19240\tPL:ILLUMINA"
done

我已经尝试了很多解决方法,但仍然无法绕过这个错误。如果你们能帮我解决这个问题,我将不胜感激。谢谢

在 bash 脚本中添加 set -aux 用于调试后,我现在得到以下输出

adnan@adnan-VirtualBox[Linux] ./format.sh                           
+ for left_fastq in '/data/reads/NA19240/*_1.fastq'
+ right_fastq='/data/reads/NA19240/*_2.fastq'
++ basename '/data/reads/NA19240/*'
+ lane_id='*'
+ ./rtg format -f fastq -q sanger -o '*' -l '/data/reads/NA19240/*_1.fastq' -r '/data/reads/NA19240/*_2.fastq' --sam-rg '@RG\tID:*\tSM:NA19240\tPL:ILLUMINA'
Error: File not found: "/data/reads/NA19240/*_1.fastq"
Error: File not found: "/data/reads/NA19240/*_2.fastq"
Error: There were 2 invalid input file paths

最佳答案

您需要设置 nullglob option在脚本中,像这样:

shopt -s nullglob

默认情况下,不匹配的 glob 会扩展为自身。通过设置 set -aux 获得的输出表明文件 glob /data/reads/NA19240/*_1.fastq 正在逐字解释。发生这种情况的唯一方法是没有找到文件,并且 nullglob 被禁用。

关于linux - 在使 bash 脚本工作时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34448767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com