Bash脚本+逐行读取+模糊重定向?

时间:2012-05-23 16:36:46

标签: file bash while-loop

我有这个简单的脚本:

#!/bin/bash
cmd="file.txt"

while read line
do
    command $line > $line

done < $cmd

这个.txt文件:

./cmd var1 var2 var3
./cmd var1 var2 var3
./cmd var1 var2 var3
./cmd var1 var2 var3

我的目标是读取每一行并执行命令,但我不断收到此错误:

 line x: $line: ambiguos redirect

我是BASH的新手,我不知道这个错误意味着什么,在研究它时,出现了几十种不同的解释。有没有人知道我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

您正在执行的内容基本上是:

command var1 var2 var3 > var1 var2 var3

shell无法确定要将输出重定向到哪个文件:var1var2var3

我不确定你要做什么,但是如果你想输出,比如var1,那么你可以这样做:

while read firstVar line; do
  command $firstVar $line > $firstVar
done < file.txt

但是,如果 - 如你的帖子所说 - 你只想执行命令,那么根本不需要重定向。只需:

while read line; do
  command $line
done < file.txt