1

複数の入力ファイルを使用してプログラム (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

助けてくれてありがとう。

4

1 に答える 1