PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Serveur - Sécurité et techniques > fr.comp.os.unix > recuperer un parametre dans un menu
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
fr.comp.os.unix Système UNIX.

recuperer un parametre dans un menu

Réponse
 
LinkBack Outils de la discussion
Vieux 02/05/2006, 15h41   #1
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut recuperer un parametre dans un menu

Bonjour,

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à je souhaite quand je tape la ligne 5 récuperer en parametre un
hostname qui permettra de lancer une fonction qui fait par exemple un
"ls" sur le hostname passe en paramètre.

Merci de votre retour
DorisNemo

  Réponse avec citation
Vieux 02/05/2006, 15h47   #2
Luc Habert
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

Bein read, justement.

  Réponse avec citation
Vieux 03/05/2006, 09h14   #3
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

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

  Réponse avec citation
Vieux 03/05/2006, 09h58   #4
Jean-Marc DURO
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

dorisnemo a écrit :
> 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
  Réponse avec citation
Vieux 03/05/2006, 10h21   #5
Laurent
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

dorisnemo a écrit :
> 5) echo entree parametre ${param1} ; read DUMMY


Si tu faisais :

5) read param1 ; echo entree parametre ${param1}

ça fonctionnerait beaucoup mieux..
  Réponse avec citation
Vieux 03/05/2006, 11h13   #6
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

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

  Réponse avec citation
Vieux 03/05/2006, 12h08   #7
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

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>to\to\ ti\<NL>ti ", MACHINE
contiendra: "toto titi". Change en IFS= read -r MACHINE si ce
n'est pas ce que tu veux.

--
Stephane
  Réponse avec citation
Vieux 03/05/2006, 12h51   #8
Jean-Marc DURO
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

dorisnemo a écrit :
> 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
  Réponse avec citation
Vieux 04/05/2006, 08h54   #9
dorisnemo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

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 "\n\n\n\t\t\t\t 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

  Réponse avec citation
Vieux 04/05/2006, 09h03   #10
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: recuperer un parametre dans un menu

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 "\n\n\n\t\t\t\t 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 "\n\t" 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
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 05h26.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,99109 seconds with 18 queries