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 を初めて使用し、このエラーの意味がわかりません。調査中に何十ものさまざまな説明が出てきました。私が間違っている可能性があることを知っている人はいますか?

4

1 に答える 1

2

実行しているのは基本的に次のとおりです。

command var1 var2 var3 > var1 var2 var3

シェルは、出力をリダイレクトするファイルを特定できません: var1var2、またはvar3

あなたが何をしようとしているのかはわかりませんが、たとえば に出力したい場合は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 に答える