J'utilise un script bash pour automatiser un ensemble de tests pour un autre code. Le script ressemble à ceci:Rediriger la sortie de test
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
Exécuté comme ça, le script fait ce que je veux - me montre un mur de texte, et il enregistre dans un fichier dans le répertoire reptest. Maintenant que j'ai testé l'installation, il devient fastidieux d'attendre que le programme entier soit réinstallé. Cependant, quand je coupe le script jusqu'à
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
Le script se bloque, rien ne se passe, les temps d'attente shell sur une ligne blanche jusqu'à ce que je Ctrl-C il. Qu'arrive-t-il à la sortie? Comment puis-je récupérer mon mur de texte?
Vous n'utilisez pas Windows/Cygwin et vous êtes par erreur passé aux fins de ligne \ r \ n? – Boldewyn
Btw: Je suppose que les fichiers de sortie ne sont pas créés att? – Boldewyn
Vous n'avez pas besoin d'utiliser seq, vous pouvez utiliser: "for i in {1..10}". Changez "python" en "echo" et voyez ce qu'il se passe. Cela éliminerait python ou runtest.py comme coupables. –