如何在Bash中遍历具有相应名称的文件对

时间:2019-10-11 07:26:19

标签: bash unix

我有一个文件夹,其中包含名为test_1_intest_1_outtest_2_intest_2_out等。我想编写一个脚本,可以用这些对来测试我的程序,我想它会像这样循环执行

diff <($program < $test_in) <($test_out)

所以问题是在Bash中最好的方法是什么?如何遍历文件对?还有如何捕获异常,如果diff显示出一些差异,则会打印一些错误消息?

1 个答案:

答案 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