如何在bash脚本中向管道提交两个或多个输入文件?

时间:2014-09-24 16:15:45

标签: bash loops

我编写了一个bash脚本,使用各种程序执行一系列生物信息学任务。我想知道如何传递这个脚本一串文件名来连续执行相同的分析。

即。假设我有类似的东西:

name=a.txt
echo "this is a test" >> $name
echo "this is also a test" >> $name
echo "this is still a test" >> $name

我以为我能做到:

for i in 'b.txt c.txt d.txt'
    do
    name=$i
        echo "this is a loop test" >> $name
        echo "this is also a loop test" >> $name
        echo "this is still a loop test" >> $name
    done

实现同样的事情。但显然这不起作用。我怎么能实现这个目标?

谢谢,

马特

2 个答案:

答案 0 :(得分:0)

你的文件名周围的引号是问题,没有它们就可以了

答案 1 :(得分:0)

如果我明白你想做什么,你的例子似乎大致正确。 要从命令行参数获取文件列表,您可以这样做:

#!/bin/sh
for file in "$@"; do
  echo "text" >> $file
done