Assumindo que você não precisa da saída do programa para mais nada, eu faria assim:
for var in ./*
do
while ! python2.7 submit.py "$var" | grep -qFe traceback
do
echo "Trying again for $var ..."
done
echo "Succeeded for $var."
done
Se a saída do programa for pequena, pode ser melhor redirecioná-la para uma variável e verificar isso (porque salva um fork + exec por iteração):
for var in ./*
do
while [[ "$(python2.7 submit.py "$var")" != *traceback* ]]
do
echo "Trying again for $var ..."
done
echo "Succeeded for $var."
done