Afficher le contenu d'une variable contenue dans une autre var
Résolu
Pedrolitino
Messages postés
6
Statut
Membre
-
Pedrolitino Messages postés 6 Statut Membre -
Pedrolitino Messages postés 6 Statut Membre -
Bonjour à tous,
J'ai un problème en voulant développer un script SHELL.
Je récupère dans un fichier des noms de script à exécuter.
Or le fichier est de cette forme :
MonFic.txt :
$MonDossierKSH/script1.ksh
$MonDossierKSH/script2.ksh
$MonDossierSH/script1.sh
Du coup, quand je récupère la ligne dans un variable, je ne peux pas afficher le chemin complet du script puisque il ne prend pas la valeur $MonDossierKSH comme une variable.
Exemple de script :
Le résultat :
$MonDossierKSH/script1.ksh
$MonDossierKSH/script2.ksh
$MonDossierSH/script1.sh
Or j'aimerais avoir :
/appli/projects/MonAppli/KSH/script1.ksh
/appli/projects/MonAppli/KSH/script2.ksh
/appli/projects/MonAppli/SH/script1.sh
Est ce possible ?
Merci pour votre retour :)
J'ai un problème en voulant développer un script SHELL.
Je récupère dans un fichier des noms de script à exécuter.
Or le fichier est de cette forme :
MonFic.txt :
$MonDossierKSH/script1.ksh
$MonDossierKSH/script2.ksh
$MonDossierSH/script1.sh
Du coup, quand je récupère la ligne dans un variable, je ne peux pas afficher le chemin complet du script puisque il ne prend pas la valeur $MonDossierKSH comme une variable.
Exemple de script :
#!/bin/ksh $MonDossierKSH=/appli/projects/MonAppli/KSH $MonDossierSH=/appli/projects/MonAppli/SH while IFS=" " read script do echo $script done < MonFic.txt
Le résultat :
$MonDossierKSH/script1.ksh
$MonDossierKSH/script2.ksh
$MonDossierSH/script1.sh
Or j'aimerais avoir :
/appli/projects/MonAppli/KSH/script1.ksh
/appli/projects/MonAppli/KSH/script2.ksh
/appli/projects/MonAppli/SH/script1.sh
Est ce possible ?
Merci pour votre retour :)
1 réponse
-
Salut,
Est ce possible ?
Dans l'état actuel, non :-(
Comment veux-tu que ton script devine ce que contient $MonDossierSH si cette variable n'est déclarée nulle part ?
Déjà, comme elle atterrit (sous cette forme) dans ton fichier MonFic.txt ?-
Merci pour ton retour rapide.
"Comment veux-tu que ton script devine ce que contient $MonDossierSH si cette variable n'est déclarée nulle part ?"
Justement, j'aimerais forcer le script à voir le "$" pour qu'il comprenne que c'est une variable :D
"Déjà, comme elle atterrit (sous cette forme) dans ton fichier MonFic.txt ?"
En fait, je récupère tous les traitements présent de la crontab qui doivent tourner entre deux heures données.
Et dans cette crontab, on retrouve ce genre d'information.
J'ai une crontab du genre :############################################# ##### Declaration des variables ##### ############################################# MonDossierKSH=/appli/projects/MonAppli/KSH MonDossierSH=/appli/projects/MonAppli/SH #Mes scripts 20 09 * * * $MonDossierKSH/script1.ksh 30 09 * * * $MonDossierKSH/script2.ksh
Si vous avez des idées ? -
-
-
Avec la commande
crontab -l > monFic.txt
, le contenu de monFic.txt devrait ressembler à :############################################# ##### Declaration des variables ##### ############################################# MonDossierKSH=/appli/projects/MonAppli/KSH MonDossierSH=/appli/projects/MonAppli/SH #Mes scripts 20 09 * * * $MonDossierKSH/script1.ksh 30 09 * * * $MonDossierKSH/script2.ksh
et non à :$MonDossierKSH/script1.ksh
$MonDossierKSH/script2.ksh
$MonDossierSH/script1.sh
Non ?
Donc, comment arrives-tu au format de ton fichier monFic.txt ? -
Voici le code :
#Récupère seulement les taches grep "^[0-9]\|^\*" $ficCrontab > $ficCrontab_OnlyTask #Boucle pour analyser chaque tache while IFS=" " read minuteCron heureCron jourMoisCron moisCron jourSemaineCron tache reste do fc_analyse_crontab #Analyse pour savoir si la tache est à rejouer jobActif=$? if [[ $jobActif -eq 0 ]] then echo -e "$tache \n" >> monFic.txt fi done < $ficCrontab_OnlyTask
-