Bash + dialog ! casse tete xD
Lexouille
-
Lexouille -
Lexouille -
Salut a tous !
voila je vous présente mon problème. J'ai un script en bash que j'aimerai un peu améliorer "graphiquement" ...
Mon script lit un fichier qui contient des noms de serveurs , et est sous cette forme :
serveur1
serevur2
serveur3
...
le nombre de lignes dans ce fichier peut etre variable !
le script affiche un message et les serveurs sur lesquels on peut se connecter avec un boucle :
i=0
for ligne in `cat serveurs`
do
tablo[$i]=$ligne
i=$(($i + 1))
echo "$1- $ligne"
done
le script demande ensuite sur quelle serveur on veut se connecter..
bon apres il fait d'autre truc mais je vous épargne le reste , c'est pas utile pour le probleme qui suit ...
je veux améliorer ça en utilisant dialog !
je veux que dans mon --inputbox ca donne la meme chose que en bash :
l'affichage des serveurs :
1-serveur1
2-serveur2
...
Choissiez un serveur sur lequel vous connectez :
et j'arrive pas du tout a intégrer cette boucle dans un inputbox pour afficher ce qu'il y a dans mon fichier serveur... j'ai essayer plusieurs choses rien ne marche ... (l'affichage barbare du tableau : ${tablo[*]} y a que ca qui fonctionne mais c'est pas propre du tout ... )
je me demande si enfait on peut faire quelque chose de dynamique comme ça ?!
Merci pour vous réponses ... si il y en a xD parce que j'ai pas trouver grand chose avec mon ami google !!
voila je vous présente mon problème. J'ai un script en bash que j'aimerai un peu améliorer "graphiquement" ...
Mon script lit un fichier qui contient des noms de serveurs , et est sous cette forme :
serveur1
serevur2
serveur3
...
le nombre de lignes dans ce fichier peut etre variable !
le script affiche un message et les serveurs sur lesquels on peut se connecter avec un boucle :
i=0
for ligne in `cat serveurs`
do
tablo[$i]=$ligne
i=$(($i + 1))
echo "$1- $ligne"
done
le script demande ensuite sur quelle serveur on veut se connecter..
bon apres il fait d'autre truc mais je vous épargne le reste , c'est pas utile pour le probleme qui suit ...
je veux améliorer ça en utilisant dialog !
je veux que dans mon --inputbox ca donne la meme chose que en bash :
l'affichage des serveurs :
1-serveur1
2-serveur2
...
Choissiez un serveur sur lequel vous connectez :
et j'arrive pas du tout a intégrer cette boucle dans un inputbox pour afficher ce qu'il y a dans mon fichier serveur... j'ai essayer plusieurs choses rien ne marche ... (l'affichage barbare du tableau : ${tablo[*]} y a que ca qui fonctionne mais c'est pas propre du tout ... )
je me demande si enfait on peut faire quelque chose de dynamique comme ça ?!
Merci pour vous réponses ... si il y en a xD parce que j'ai pas trouver grand chose avec mon ami google !!
A voir également:
- Linux dialog
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
- Backtrack linux - Télécharger - Sécurité
- Linux mint 22.1 - Accueil - Linux
2 réponses
Salut,
En partant sur un fichier "serveurs" contenant :
En partant sur un fichier "serveurs" contenant :
serveur1 serveur2 serveur3 serveur4 serveur5Voilà un exemple avec "dialog" :
#! /bin/bash
i=1
for ligne in $(cat serveurs)
do
tablo[$i]="$i $ligne"
i=$((i + 1))
done
dialog --title "Menu" \
--menu "Faites votre choix" 0 0 0 \
${tablo[*]} 2> menu.tmp.$$
retval=$?
choix=$(cat menu.tmp.$$)
rm -f menu.tmp.$$
case $retval in
0)
echo "Choix : $choix";;
1)
echo "Touche Cancel pressée.";;
255)
echo "Boîte fermée.";;
esacLe résultat en image dans une console ;-))
Tu peux essayer avec Xdialog, c'est plus joli ;-))
Côté version :
Côté version :
[rep]$ dialog --version Version: 1.1-20070704 [rep]$ Xdialog --version 2.2.1 [rep]$ cat /etc/release Mandriva Linux release 2008.0 (Official) for i586 [rep]$Quant à extraire le contenu de la ligne faisant référence au numéro de la variable "$choix" :
[rep]$ choix=4 [rep]$ sed -n "/$choix/p" serveurs serveur4 [rep]$;-))
excellent screenshot !
alors par contre euh moi chui sous openbsd , et euh ton script fonctionne , enfin il retourne pas d erreurs xD
mais niveau affichage ca me sort un truc tout laid ! donc je voulais savoir quelle version de dialog tu avais !
et sous quel distribution tu tournes , que je teste sur la meme !
Merci (:
et je voulais savoir , a ton avis , si par exemple je fais le choix 1 , qui correspond donc a serveur1 , comment je pourrais faire pour récup dans une variable "serveur1" .. la comme ca j imagine travailler avec ta variable $choix et par exemple récupérer le contenu de la ligne $choix dans mon fichier serveur, mais crois tu que ca soit possible autrement ?
t as l'air de toucher c cool !