我有这个简单的脚本:
#!/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的新手,我不知道这个错误意味着什么,在研究它时,出现了几十种不同的解释。有没有人知道我可能做错了什么?
答案 0 :(得分:2)
您正在执行的内容基本上是:
command var1 var2 var3 > var1 var2 var3
shell无法确定要将输出重定向到哪个文件:var1
,var2
或var3
我不确定你要做什么,但是如果你想输出,比如var1
,那么你可以这样做:
while read firstVar line; do
command $firstVar $line > $firstVar
done < file.txt
但是,如果 - 如你的帖子所说 - 你只想执行命令,那么根本不需要重定向。只需:
while read line; do
command $line
done < file.txt