Você pode ajustar isso para um número arbitrariamente grande de arquivos nomeados como você mencionou. Aqui estão 4 conteúdos dos arquivos de teste que usei: test1: um mytest1: 1 teste2: dois mytest2: dois
for i in {1..2}; do
diff test${i}.out mytest${i}.out &>/dev/null
es=$?
if [ $es -ne 0 ]; then
echo "difference found"
else
echo "success"
fi
done
Saída:
difference found
success
Eu percebo que não respondi a sua pergunta literal, porque você pediu por arquivos contendo a saída do diff. Se você realmente tem que ter isso, você pode alterar o código:
diff test${i}.out mytest${i}.out > difftest${i}.txt
if ! [[ -s difftest${i} ]]; then
echo success
else
echo "difference found"
fi
Provavelmente é útil ter em mente que, caso seu programa tente comparar um arquivo com conteúdo a um arquivo inexistente, ele criará uma saída para stderr que pareça ter havido uma diferença significativa entre o arquivo e o arquivo. arquivo inexistente. Isso deve ser bom, pois somente o stdout entra em * .txt.