Ich verwende ein Bash-Skript, um eine Reihe von Tests für einen anderen Code zu automatisieren. Das Skript sieht wie folgt aus:Umleiten der Testausgabe
for i in $(seq 1 10)
do
cd ~/BuildBot
rm -rf program # Remove the directory each time to test installation
git clone /localrepo/
cd ~/into/program
python2.6 setup.py build_ext -i
cd tests
python runtest.py >& ~/into/reptest/runtest-all.out.$i
echo $? > ~/into/reptest/runtest-all.exit.$i
done
Wenn wie folgt ausführen, wird das Skript tut, was ich will - zeigt mir eine Mauer von Text, und speichert sie in einer Datei im Verzeichnis reptest. Jetzt, da ich die Installation getestet habe, wird es nervig, auf die Neuinstallation des gesamten Programms warten zu müssen. Allerdings, wenn ich schneiden Sie das Skript nach unten zu
for i in $(seq 1 10)
do
cd ~/into/program/tests
python runtest.py >& ~/into/reptest/runtest-all.out.$i
echo $? > ~/into/reptest/runtest-all.exit.$i
done
Das Skript hängt, geschieht nichts, die Shell wartet auf eine leere Zeile, bis ich Ctrl-C es. Was passiert mit der Ausgabe? Wie bekomme ich meine Textwand zurück?
Sie sind nicht dabei, Windows/Cygwin zu verwenden und haben versehentlich auf die Zeilenenden geschaltet? – Boldewyn
Btw: Ich denke, die Ausgabedateien werden nicht alle erstellt? – Boldewyn
Sie müssen seq nicht verwenden, das Sie verwenden können: "for i in {1..10}". Ändern Sie "python" in "echo" und sehen Sie, was passiert. Das würde python oder runtest.py als Täter ausschließen. –