Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/05/2015, à 09:07

remi82

[Résolu] 1 variable en fonction du menu et passer à la suite du code

Bonjour,

J'ai fais un script qui permet de faire des transferts d'un dossier d'un NAS vers différents serveurs.
Mais je voudrais pouvoir avoir le choix de choisir le dossier à transférer.

J'ai donc créé un menu comme ci-dessous

#! /bin/bash
echo "--- Menu général ---"
echo "Saisissez un choix,  <q> pour quitter le menu"
echo "<1> 	Menu 1"
echo "<2> 	Menu 2"
echo "<3> 	Menu 3"
echo "<4> 	Menu 4"
echo "<10>	q = Quitter"
read choix 
case $choix in 

1)		echo "Menu 1"
                ma_variable=dossier1
		;;


2)		echo "Menu 2"
                ma_variable=dossier2
		;;



3)		echo "Menu3"
                ma_variable=dossier3
		;;



4)		echo "Menu4"
                ma_variable=dossier4
		;;


q) exit;;
*) echo "Choix incorrect"
esac


#Ici, je voudrai la suite de mon code qui fait mon transfert

cp /ma_variable /mon_dossier

Ce que je voudrai, mais je n'y arrive pas ; c'est d'attribuer en variable le nom du dossier, et ensuite, lancer mon transfert.
Je sais que goto est à proscrire.

Merci par avance

Dernière modification par remi82 (Le 21/05/2015, à 11:10)

Hors ligne

#2 Le 21/05/2015, à 09:27

vajpaille

Re : [Résolu] 1 variable en fonction du menu et passer à la suite du code

Bonjour,

Là comme ça je te dirais de faire des fonctions, test un truc comme ça :

function CHOIX1 ()
{
ma_variable=dossier1
}
function CHOIX2 ()
{
ma_variable=dossier2
}
function CHOIX3 ()
{
ma_variable=dossier3
}

function CHOIX4 ()
{
ma_variable=dossier4
}

read choix 
case $choix in 
1)		CHOIX1;;
2)		CHOIX2;;
3)		CHOIX3;;
4)		CHOIX4;;
q) exit;;
*) echo "Choix incorrect"
esac

Et en cherchant un peu tu pourrais n'avoir qu'une fonction mais en passant un paramètre un IF devrait faire l'affaire.
Faudrait y réfléchir mais il doit y avoir un moyen plus simple wink.

Cdt,


GNU/Linux : Ubuntu, CentOS, Red Hat
BSD : OpenBSD, GhostBSD, PC-BSD

Hors ligne

#3 Le 21/05/2015, à 09:29

erresse

Re : [Résolu] 1 variable en fonction du menu et passer à la suite du code

remi82 a écrit :

Ce que je voudrai, mais je n'y arrive pas ; c'est d'attribuer en variable le nom du dossier, et ensuite, lancer mon transfert.
Je sais que goto est à proscrire.

Bonjour,

"goto" n'est pas à proscrire, il n'existe pas ! Le script bash ne dispose pas de cette commande...
Et ta demande n'est pas très claire :
- le nom du dossier en variable, n'est-ce pas justement ce que fait ton script ?
- lancer le transfert de quoi sur quoi, au juste ???
Sinon, dans l'instruction de copie, tu peux bien indiquer la variable qui contient le nom du dossier :

cp ${ma_variable} /mon_dossier

Où est-ce que tu bloques ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#4 Le 21/05/2015, à 10:13

remi82

Re : [Résolu] 1 variable en fonction du menu et passer à la suite du code

Bonjour à vous, et merci.

Ou est-ce que je bloque.

J'ai fais un shell qui transfert un dossier d'un nas vers plusieurs serveur linux. Tout est ok.
Mais je voudrai utiliser le même shell pour transférer un dossier au choix que je passerai en variable. Donc passer en variable le dossier dans la commande cp, pas de soucis.

Mon problème, et que je n'arrive pas à faire ce menu.

- Donc je voudrais un menu, qui en fonction du choix, me mette le nom du dossier dans une variable.
- Et ensuite, passer peux importe le choix précédent, à la suite du shell qui fait la copie.

Encore merci

Hors ligne

#5 Le 21/05/2015, à 10:26

vajpaille

Re : [Résolu] 1 variable en fonction du menu et passer à la suite du code

Tu pourrais parler en terme de source et destination ?

tu vas passer en paramètre (genre : ma_source=$1) ta source je suppose,
puis en fonction du choix utilisateur sélectionner la destination ?

Pourquoi faire un menu quand tu peux tout passé en paramètre ?
Tu définis que $1 c'est ta source que $2 c'est le nom de te destination ensuite pour traité la dest tu fais un IF pour la prise de décision.

Cdt,


GNU/Linux : Ubuntu, CentOS, Red Hat
BSD : OpenBSD, GhostBSD, PC-BSD

Hors ligne

#6 Le 21/05/2015, à 10:44

remi82

Re : [Résolu] 1 variable en fonction du menu et passer à la suite du code

vajpaille,

Je vais surement essayer de faire comme tu dis.
Je te remercie.

Hors ligne

#7 Le 21/05/2015, à 11:09

remi82

Re : [Résolu] 1 variable en fonction du menu et passer à la suite du code

En utilisant les if imbriqué, j'ai réussi,
Merci

Hors ligne