2015-05-11 25 views
1

我想根据以下代码示例在bash脚本中运行命令。尽管j和i变量包含文件名(这些文件名是从samples.list.txt中读出的),但这些字符串不能插入到命令中。什么可能是错的?非常感谢!bash:命令参数中的字符串连接

cat work/sample.list.txt | while read line; 
do 
    arrIN=(${line///}) 
    i=${arrIN[0]} 
    j=${arrIN[1]} 
    k=${arrIN[2]} 

    java -jar some.jar ./input1directory/"$i" ./input2directory/"$j" 
done 
+0

什么是'sample.list.txt'内容? – Samuel

+0

当前只有一条线 – szusz

+0

control_0_D10_1.fq control_0_D10_2.fq control_0_D10 – szusz

回答

5

您可以同时读取多个变量,像这样:

while read i j k ; do 
    java -jar some.jar ./input1directory/"$i" ./input2directory/"$j" 
done < "work/sample.list.txt" 

每一行read读取将得到分词和各个领域的问题将得到赋给变量你在命令中指定线。如果有更多的字段比变量,整个剩余的行被分配到指定的最后一个变量。