j'ai un menu standard
ex:
case $choix in
1) cat hostPROD.lst |more ; echo press enter ; read DUMMY
;;
2) fctlsusergene
;;
3) fctlsgrpgene
;;
4) fctgetUgeneric
;;
5) echo entree parametre ${param1} ; read DUMMY
Voil=E0 je souhaite quand je tape la ligne 5 r=E9cuperer en parametre un
hostname qui permettra de lancer une fonction qui fait par exemple un
"ls" sur le hostname passe en param=E8tre.
désolé Luc je ne comprends pas ta réponse ! ma variable n'est pas renseigné. quand je tape le choix 5 avec une valeur la variable n'est pas initialisé param1=$1
désolé Luc je ne comprends pas ta réponse !
ma variable n'est pas renseigné.
quand je tape le choix 5 avec une valeur la variable n'est pas
initialisé param1=$1
désolé Luc je ne comprends pas ta réponse ! ma variable n'est pas renseigné. quand je tape le choix 5 avec une valeur la variable n'est pas initialisé param1=$1
Jean-Marc DURO
désolé Luc je ne comprends pas ta réponse ! ma variable n'est pas renseigné. quand je tape le choix 5 avec une valeur la variable n'est pas initialisé param1=$1
J'ai du mal à saisir. Dans ton script, lors du choix 5 tu va renseigner
une variable de nom DUMMY. A aucun moment, tu n'as affecté de valeur à la variable param1.
$1 est un paramètre de ligne de commande, passé au lancement du script. Si tu veux que param1 prenne la valeur de ce paramètre lors du choix 5, il te suffit d'écrire: param1=$1 dans la branche 5 du case.
Cordialement
Jean-Marc
désolé Luc je ne comprends pas ta réponse !
ma variable n'est pas renseigné.
quand je tape le choix 5 avec une valeur la variable n'est pas
initialisé param1=$1
J'ai du mal à saisir. Dans ton script, lors du choix 5 tu va renseigner
une variable de nom DUMMY. A aucun moment, tu n'as affecté de valeur à
la variable param1.
$1 est un paramètre de ligne de commande, passé au lancement du script.
Si tu veux que param1 prenne la valeur de ce paramètre lors du choix 5,
il te suffit d'écrire: param1=$1 dans la branche 5 du case.
désolé Luc je ne comprends pas ta réponse ! ma variable n'est pas renseigné. quand je tape le choix 5 avec une valeur la variable n'est pas initialisé param1=$1
J'ai du mal à saisir. Dans ton script, lors du choix 5 tu va renseigner
une variable de nom DUMMY. A aucun moment, tu n'as affecté de valeur à la variable param1.
$1 est un paramètre de ligne de commande, passé au lancement du script. Si tu veux que param1 prenne la valeur de ce paramètre lors du choix 5, il te suffit d'écrire: param1=$1 dans la branche 5 du case.
merci de ton retour, voici comment j'ai fait grace à ta réponse sur le read
9) read MACHINE?"Entrer le nom de la machine = " echo "le nom entré est ${MACHINE}" read VALIDATION?"Validez vous le choix oui/non: " fctread ;;
ainsi ma fonction récupère le paramètre et peux executer ma commande Gérald
Stephane Chazelas
On 3 May 2006 03:13:06 -0700, dorisnemo wrote:
merci de ton retour, voici comment j'ai fait grace à ta réponse sur le read
9) read MACHINE?"Entrer le nom de la machine = " echo "le nom entré est ${MACHINE}" read VALIDATION?"Validez vous le choix oui/non: " fctread ;;
ainsi ma fonction récupère le paramètre et peux executer ma commande [...]
Note que read 'var?prompt' est specifique a ksh/zsh (et tu as oublié de mettre ? qui est un charactere special au shell entre quotes).
La syntaxe standard est:
printf 'Entrer le nom de la machine = ' read MACHINE
Note que sans -r, read considere "" comme un caractere d'echappement (pour le separateur, pour le saut de ligne (et pour lui-meme). read va aussi supprimer les blanks en debut et fin (a moins qu'IFS ait ete modifié).
En gros si tu entres " <Tab>toto ti<NL>ti ", MACHINE contiendra: "toto titi". Change en IFS= read -r MACHINE si ce n'est pas ce que tu veux.
-- Stephane
On 3 May 2006 03:13:06 -0700, dorisnemo wrote:
merci de ton retour, voici comment j'ai fait grace à ta réponse sur
le read
9)
read MACHINE?"Entrer le nom de la machine = "
echo "le nom entré est ${MACHINE}"
read VALIDATION?"Validez vous le choix oui/non: "
fctread
;;
ainsi ma fonction récupère le paramètre et peux executer ma commande
[...]
Note que read 'var?prompt' est specifique a ksh/zsh (et tu as
oublié de mettre ? qui est un charactere special au shell entre
quotes).
La syntaxe standard est:
printf 'Entrer le nom de la machine = '
read MACHINE
Note que sans -r, read considere "" comme un caractere
d'echappement (pour le separateur, pour le saut de ligne (et
pour lui-meme). read va aussi supprimer les blanks en debut et
fin (a moins qu'IFS ait ete modifié).
En gros si tu entres " <Tab>toto ti<NL>ti ", MACHINE
contiendra: "toto titi". Change en IFS= read -r MACHINE si ce
n'est pas ce que tu veux.
merci de ton retour, voici comment j'ai fait grace à ta réponse sur le read
9) read MACHINE?"Entrer le nom de la machine = " echo "le nom entré est ${MACHINE}" read VALIDATION?"Validez vous le choix oui/non: " fctread ;;
ainsi ma fonction récupère le paramètre et peux executer ma commande [...]
Note que read 'var?prompt' est specifique a ksh/zsh (et tu as oublié de mettre ? qui est un charactere special au shell entre quotes).
La syntaxe standard est:
printf 'Entrer le nom de la machine = ' read MACHINE
Note que sans -r, read considere "" comme un caractere d'echappement (pour le separateur, pour le saut de ligne (et pour lui-meme). read va aussi supprimer les blanks en debut et fin (a moins qu'IFS ait ete modifié).
En gros si tu entres " <Tab>toto ti<NL>ti ", MACHINE contiendra: "toto titi". Change en IFS= read -r MACHINE si ce n'est pas ce que tu veux.
-- Stephane
Jean-Marc DURO
merci de ton retour, voici comment j'ai fait grace à ta réponse sur le read
9) read MACHINE?"Entrer le nom de la machine = " echo "le nom entré est ${MACHINE}" read VALIDATION?"Validez vous le choix oui/non: " fctread ;;
ainsi ma fonction récupère le paramètre et peux executer ma commande Gérald
C'est dans fctread que tu traites la réponse à la validation du choix ?
Jean-Marc
merci de ton retour, voici comment j'ai fait grace à ta réponse sur
le read
9)
read MACHINE?"Entrer le nom de la machine = "
echo "le nom entré est ${MACHINE}"
read VALIDATION?"Validez vous le choix oui/non: "
fctread
;;
ainsi ma fonction récupère le paramètre et peux executer ma commande
Gérald
C'est dans fctread que tu traites la réponse à la validation du choix ?
non la validation je l'ai ajouter ensuite de la manière suivante :
############### read VALIDATION?"Validez vous le choix oui/non: " if [[ ${VALIDATION} = oui ]] then fctfindrepnormes elif [[ ${VALIDATION} = non ]] then clear ; echo "nnntttt OPERATION ANNULEE (appuyer sur entree)" ; read DUMMY else badchoice fi ;; ##########################
merci Stephane pour ton retour, je vais modifier mon script en conséquence. Gérald
Stephane Chazelas
2006-05-4, 00:54(-07), dorisnemo:
non la validation je l'ai ajouter ensuite de la manière suivante :
############### read VALIDATION?"Validez vous le choix oui/non: " if [[ ${VALIDATION} = oui ]] then fctfindrepnormes elif [[ ${VALIDATION} = non ]] then clear ; echo "nnntttt OPERATION ANNULEE (appuyer sur entree)" ; read DUMMY else badchoice fi ;; ##########################
merci Stephane pour ton retour, je vais modifier mon script en conséquence. [...]
Tu peux remplacer les
if [[ $VALIDATION = oui ]]
par des
if [ "$VALIDATION" = oui ]
tant que tu y es.
ou encore mieux:
case $VALIDATION in oui | yes | o | y) ...;; non | no | n) ...;; esac
Et echo par printf. echo "nt" ne marchera pas avec tous les shells. En particulier, avec ksh, ca depend de beaucoup de choses. Le meme script, avec le meme shell peut cesser de marcher du jour au lendemain, ou peut marcher avec certains utilisateurs et pas avec d'autres. Il est recommandé (par POSIX notemment) de laisser tomber echo et d'utiliser "printf" a la place.
Note que si tu lance "read" sans argument, c'est equivalent a "read REPLY".
-- Stéphane
2006-05-4, 00:54(-07), dorisnemo:
non la validation je l'ai ajouter ensuite de la manière suivante :
###############
read VALIDATION?"Validez vous le choix oui/non: "
if [[ ${VALIDATION} = oui ]]
then
fctfindrepnormes
elif [[ ${VALIDATION} = non ]]
then
clear ; echo "nnntttt OPERATION ANNULEE (appuyer sur entree)" ;
read DUMMY
else
badchoice
fi
;;
##########################
merci Stephane pour ton retour, je vais modifier mon script en
conséquence.
[...]
Tu peux remplacer les
if [[ $VALIDATION = oui ]]
par des
if [ "$VALIDATION" = oui ]
tant que tu y es.
ou encore mieux:
case $VALIDATION in
oui | yes | o | y) ...;;
non | no | n) ...;;
esac
Et echo par printf. echo "nt" ne marchera pas avec tous les
shells. En particulier, avec ksh, ca depend de beaucoup de
choses. Le meme script, avec le meme shell peut cesser de
marcher du jour au lendemain, ou peut marcher avec certains
utilisateurs et pas avec d'autres. Il est recommandé (par POSIX
notemment) de laisser tomber echo et d'utiliser "printf" a la
place.
Note que si tu lance "read" sans argument, c'est equivalent a
"read REPLY".
non la validation je l'ai ajouter ensuite de la manière suivante :
############### read VALIDATION?"Validez vous le choix oui/non: " if [[ ${VALIDATION} = oui ]] then fctfindrepnormes elif [[ ${VALIDATION} = non ]] then clear ; echo "nnntttt OPERATION ANNULEE (appuyer sur entree)" ; read DUMMY else badchoice fi ;; ##########################
merci Stephane pour ton retour, je vais modifier mon script en conséquence. [...]
Tu peux remplacer les
if [[ $VALIDATION = oui ]]
par des
if [ "$VALIDATION" = oui ]
tant que tu y es.
ou encore mieux:
case $VALIDATION in oui | yes | o | y) ...;; non | no | n) ...;; esac
Et echo par printf. echo "nt" ne marchera pas avec tous les shells. En particulier, avec ksh, ca depend de beaucoup de choses. Le meme script, avec le meme shell peut cesser de marcher du jour au lendemain, ou peut marcher avec certains utilisateurs et pas avec d'autres. Il est recommandé (par POSIX notemment) de laisser tomber echo et d'utiliser "printf" a la place.
Note que si tu lance "read" sans argument, c'est equivalent a "read REPLY".