我有一个文件夹,其中包含名为test_1_in
,test_1_out
,
test_2_in
,test_2_out
等。我想编写一个脚本,可以用这些对来测试我的程序,我想它会像这样循环执行
diff <($program < $test_in) <($test_out)
所以问题是在Bash中最好的方法是什么?如何遍历文件对?还有如何捕获异常,如果diff
显示出一些差异,则会打印一些错误消息?
答案 0 :(得分:1)
遍历*_in
,并使用参数扩展生成*_out
:
for test_in in test_*_in; do
test_out="${test_in%_*}_out"
if diff <("$program" "$test_in") "$test_out"; then
echo "$test_in failed."
fi
done