#1 Le 21/01/2008, à 16:31
- Kiwi41
[script bash] case shh Résolu
Bonjour,
je suis en train de créer un script pour me connecter à mes serveurs habituels et j'a un petit soucis : le menu tourne en boucle (quitter ne marche pas) et je n'ai pas la main sur le ssh lancé...
#!/bin/bash
#--fonctions
sshtoto() {
echo "Connexion à“ $1."
ssh toto@$1
}
menu() {
clear
echo "########### Choix d'un serveur ###########"
echo "1) SRV1"
echo "2) SRV2"
echo "3) SRV3"
echo "4) SRV4"
echo "5) SRV5"
echo "6) SRV6"
echo "7) SRV7"
echo "q|Q) Quitter"
read choix
case choix in
1) sshinteg SRV1&
exit 1;;
2) sshtoto SRV2;;
3) sshtoto SRV3;;
4) sshtoto SRV4;;
5) sshtoto SRV5;;
6) sshtoto SRV6;;
7) sshtoto SRV7;;
q|Q) echo "Au revoir"
exit;;
*) menu ;;
esac
}
#--lancement
menu
Dernière modification par Kiwi41 (Le 22/01/2009, à 15:26)
Hors ligne
#2 Le 21/01/2008, à 16:42
- johnlege
Re : [script bash] case shh Résolu
Bonjour
Quand tu écris les sélections multiples par case, il te manque le $, pour dire que c'est ta variable choix que tu vas tester, tu devras rajouter dans ta fonction sshinteg exit, si tu veux sortir directement.
case $choix in
et
shinteg() {
echo "Connexion à“ $1."
ssh integ@$1
exit
}
je suppose que tes machines s'appellent integVPR37 integVPR38, etc...
la ligne menu toute seule ne sert pas le lancement c'est le case qui l'effectue
Merci d'indiquer résolu dans le titre quand c'est résolu
Hors ligne
#3 Le 21/01/2008, à 18:27
- johnlege
Re : [script bash] case shh Résolu
Je n'avais pas vu le &, lorsque tu lances une commande de cette façon là il essaie de l'exécuter en tache de fond, supprime le et rajoute l'exit dans la fonction et cela devrait rouler
case $choix in
1) sshinteg VPR37;;
2) sshinteg VPR38;;
3) sshinteg TPWLPF01V;;
4) sshinteg TPWLPF02V;;
5) sshinteg BPWLPF01V;;
6) sshinteg BPWLPF02V;;
7) sshinteg TPWLPB0V;;
q|Q) echo "Au revoir"
exit;;
*) menu ;;
esac
}
Merci d'indiquer résolu dans le titre quand c'est résolu
Hors ligne