Qu'est-ce que çafait cette chose ? [KSH] - Shell/Batch - Programmation
Marsh Posté le 19-09-2012 à 13:44:22
olivier911 a écrit : Salut à tous, |
&&, c'est le ET binaire mais il faut l'interpréter différemment. Si le 1er champ est FAUX, on sait que le résultat est FAUX. Si le 1er champ est VRAI, il faut évaluer le second.
Donc, il faut comprendre la commande la façon suivante : si [ -r $0.cfg ] est vrai alors exécuter . $0.cfg
Ensuite :
-r : c'est pour évaluer si un fichier existe et est lisible
. : c'est demander d'exécuter un script dans le shell courant (pratique pour positionner des variables, si elles étaient exécutées dans un sous-shell, ça ne servirait à rien)
Ca donne donc, en français : si le fichier $0 existe et est lisible, on l'exécute dans le shell courant
Marsh Posté le 19-09-2012 à 16:07:19
mrbebert a écrit : -r : c'est pour évaluer si un fichier existe et est lisible |
Et [ c'est un alias pour la commande test, qui prend des prédicats (comme -r) et quitte avec status 0 (vrai) ou 1 (faux)
Marsh Posté le 26-09-2012 à 12:48:19
masklinn a écrit : |
Bon, j'ai la nette impression que mon fichier n'est pas ouvert puisque dans mon fichier se trouve par exemple VAR=CHAINE et après son ouverture VAR contient toujours la précédente chaine...
VAR est déclarée comme suit : typeset -x VAR=DEFAULT.
Une idée ? Une façon de rendre le truc un peu plus verbeux ?
Merci d'avance !
Marsh Posté le 04-10-2012 à 14:44:13
Bon, toujours personne ?
Alors reprenons...
Dans un fichier script ksh, j'ai :
typeset -x VAR=DEFAULT
puis plus loin :
[ -r $0.cfg ] && . $0.cfg (dans ce fichier en question est fait VAR=TOTO)
et plus loin VAR est toujours = à DEFAULT...
Comment faire pour que la valeur de VAR soit conservée, une fois la lecture du ficher $0.cfg terminée ?
Marsh Posté le 04-10-2012 à 15:02:55
chezmoicamarche
Démonstration : 3 étapes pour le script
1/ il n'y a rien dans VAR
2/ on définit une valeur à la variable VAR
3/ on exécute le script $0.cfg qui positionne une autre valeur à VAR
Les scripts :
Code :
|
Code :
|
L'exécution :
Code :
|
CQFD
Marsh Posté le 04-10-2012 à 16:26:40
Merci ! Super le détail !
Donc mon script << fonctionne >>, mais il faut donc que je comprenne et trouve pourquoi il ne fonctionne pas dans mon environnement...
Qu'est-ce qui peut bien faire que ça empêche le fonctionnement prévu, dans mon environnement ??!
Marsh Posté le 04-10-2012 à 16:49:58
Tu es sur qu'il va bien chercher le fichier de paramétrage ? Le $0, c'est le genre à avoir des effets de bord selon que le script soit lancé directement ou en paramètre du ksh.
Si tu l'exécute directement (par ". nom_du_script" ), il te positionne bien la variable ?
Marsh Posté le 08-10-2012 à 11:42:37
J'ai testé : << ksh ./nom_du_script >> (et sans le << ./ >> aussi). Et VAR toujours égale à DEFAULT !
Mais qu'est-ce que c'est que cet environnement caca que j'ai !?
Marsh Posté le 19-09-2012 à 13:12:24
Salut à tous,
Chuis vraiment novice en korn shell...
Quelqu'un saurait m'expliquer ce que fait la ligne suivante :
[ -r $0.cfg ] && . $0.cfg
Merci d'avance !