我正在尝试使用一个叫做fastqtl的工具,但在这里可能不太相关。我有兴趣将“loc_info.txt”的每一行分配到选项中。我编写了以下命令,但它返回为“分析命令行时出错:无法识别的选项”-n+1”
有什么方法可以让fastQTL在每次运行函数时读取并使用“loc_info.txt”中的1行代码吗?
谢谢你的建议!!

#!/bin/bash

tool="/path/FastQTL-2.165.linux/bin/"
vcf="/path/vcf/"
out="/path/perm_out"

for i in {1..1061}
do
${tool}fastQTL.1.165.linux --vcf ${vcf}GT.vcf.gz --bed pheno_bed.gz --region tail -n+"$i" loc_info.txt --permute 1000 --out "$i"_perm.txt
done

最佳答案

如果要在另一个命令中使用一个命令的输出,可以为此使用子shell,例如:

cmd1 -option $(cmd2)

在这里,您将使用cmd2输出作为cmd中的输入。这里的键是“$”和子shell“()”。所以解决办法可能是:
#!/bin/bash
tool="/path/FastQTL-2.165.linux/bin/"
vcf="/path/vcf/"
out="/path/perm_out"

for i in {1..1061}
do
${tool}fastQTL.1.165.linux --vcf ${vcf}GT.vcf.gz --bed pheno_bed.gz --region $(tail -n+"$i" loc_info.txt) --permute 1000 --out "$i"_perm.txt
done

关于bash - Bash:将第n行用作命令行的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48957652/

10-16 11:28