Gérer les répertoires + commande system (bash)
Bonjour à toutes et à tous,
J'ai un fichier de code (mon programme) qui est dans un répertoire. Et mes données sont dans un autre répertoire. Donc je veux lancer mon code pour qu'il fasse les calculs. Il crée les répertoires demandés (dans le programme) dans le répertoire de mes données. MAIS quand j'utilise la commande system pour lancer un programme en bash, les résultats de cette commande se retrouve dans le même répertoire que mon code. Et donc je suis obligé de changer de répertoire manuellement pour lancer cette commande "system" pour avoir les résultats dans le bon répertoire (répertoire de données).
Et donc ma question c'est comment je peux optimiser et généraliser mon programme, sans changer de directory manuellement pour lancer la commande system ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
my $dir = $ARGV[0];
## variables
my $dirData = $dir."Data";
my $dirSoftA = $dirData."/softwareA"; # dossier résultats du logiciel A
my $dirSoftB = $dirData."/softwareB"; # dossier résultats du logiciel B
my $dirSoftC = $dirData."/softwareC"; # dossier résultats du logiciel C
### DONNEES ###
mkdir ("$dirData", 0775) || print ("Couldn't create directory $dirData : $!");
## SOFTWARE A ##
mkdir ("$dirSoftA", 0775) || print ("Couldn't create directory $dirSoftA : $!");
chdir ("$dirSoftA");
system ("softwareA ....");
## SOFTWARE B ##
mkdir ("$dirSoftB", 0775) || print ("Couldn't create directory $dirSoftB : $!");
chdir ("$dirSoftB");
system ("softwareB ....");
## SOFTWARE C ##
mkdir ("$dirSoftC", 0775) || print ("Couldn't create directory $dirSoftC : $!");
chdir ("$dirSoftC");
#~ system ("softwareC ....");
} |
L'arborescence :
Programme/
|____ code/
|____ data/
Merci par avance pour votre aide !