我正在尝试使用多个输入文件测试程序(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”,现在一切正常。
新代码:
#!/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
感谢大家的帮助。