J'ai un programme java pour lequel j'essaie de générer 3 sorties, puis je les renomme en fonction de ce que le fichier d'entrée a été appelé à l'origine.Utilisation de Bash pour automatiser la création de sorties de test
Le problème est que seul le fichier d'entrée est en cours de déplacement. Je pense que cela pourrait être un problème concernant les commandes de fichiers relatifs.
Voici mon script. (De plus, je suis ouvert à des suggestions pour améliorer ce script mieux regarder. Je suis un débutant bash.)
#!/bin/bash
########################################################
#This script compiles Main, then attempts to run each #
#test case. After running a test case, it renames the #
#testcase and moves it to a new directory. #
########################################################
#echo `pwd` <---- This was used for testing. pwd is correct
#Gets contents of "tests" directory, stores them into the array
#without the file extension.
list=(`ls tests| sed 's/\.txt$//g'`)
#Compiles Main.java
cd ./src
javac Main.java
cd '../'
mv -f src/*.class bin #*/ (formatting fix)
#Runs Main for each test case, then renames and moves the test cases.
for filename in ${list[@]}
do
echo 1 > input.txt
echo tests/$filename.txt >> input.txt
cd ./bin # Why do I need to cd to make this work?
java bin/Main < input.txt
cd ../
mv -f input.txt "scriptout/'$filename'_input.txt"
mv -f "tests/output.txt" "scriptout/'$filename'_output.txt"
mv -f "tests/listing.txt" "scriptout/'$filename'_listing.txt"
mv -f "src/intermediate.txt" "scriptout/'$filename'_intermediate.txt"
done
ici est ma structure de répertoire: CVS scriptSortie essais bin src testscript.sh – MikeKusold
Êtes-vous rencontrez un problème avec ce script que vous êtes à la recherche d'une solution pour? –
@Geoffrey: Du deuxième paragraphe de la question: "Le problème est que seul le fichier d'entrée est déplacé." –