複数の入力ファイルを使用してプログラム (tp3) をテストし、出力を別のファイルに出力しようとしています。そこで、すべてを同時に実行できるように、次の bash スクリプト名ランナーを設計しました。
#!/bin/bash
rm $2
clear
FILES=(`ls ${1}`)
cmd='./tp3'
for f in ${FILES[*]}
do
echo "$f"
echo "--------------<$f>--------------" >> $2
$cmd < $1$f 2>> $2 >> $2
done
このスクリプトを実行するたびに、次のエラーが発生します。
./runner: line 10: $2: ambiguous redirect
./runner: line 11: testtest: No such file or directory
私が行うbashスクリプトを実行するには:
./runner test
スクリプトの何が問題になっていますか?
動作させるための変更: まず、変数を引用し、次に "TEST" という名前のファイルの 2 番目の引数 "$2" を置き換えたところ、すべて正常に動作しています。
新しいコード:
#!/bin/bash
rm TEST
clear
FILES=(`ls *.in`)
cmd='./tp3'
for f in ${FILES[*]}
do
echo "$f"
echo "--------------<"$f">--------------" >> "TEST"
"$cmd" < "$1$f" >> "TEST" 2>> "TEST"
done
助けてくれてありがとう。