0

我有这个简单的脚本:

#!/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 的新手,我不知道这个错误是什么意思,在研究它时,出现了几十种不同的解释。any1 知道我做错了什么吗?

4

1 回答 1

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
于 2012-05-23T16:39:45.787 回答