Usage commande Dialog et Interface/menu
naruto93sisi
Messages postés
3
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
J'apprends à écrire des scripts en shell et j'ai quelques questions.
J'essaye de réaliser un menu avec la commande dialog, mais j'éprouve quelques difficultés à l'intégrer à mon menu...
https://pastebin.com/bG0CskZK
Premier problème: au premier elif (choix 2) then, il me trouve une erreur de syntax que je ne parviens pas à identifier...
Ensuite, les dialog ne fonctionnent qu'au début, mais plus à partir de celui au début de ma boucle while, ainsi que ceux dans les if elif...
Quelqu'un pourrait-il m'éclairer ?
J'apprends à écrire des scripts en shell et j'ai quelques questions.
J'essaye de réaliser un menu avec la commande dialog, mais j'éprouve quelques difficultés à l'intégrer à mon menu...
https://pastebin.com/bG0CskZK
Premier problème: au premier elif (choix 2) then, il me trouve une erreur de syntax que je ne parviens pas à identifier...
Ensuite, les dialog ne fonctionnent qu'au début, mais plus à partir de celui au début de ma boucle while, ainsi que ceux dans les if elif...
Quelqu'un pourrait-il m'éclairer ?
A voir également:
- Usage commande Dialog et Interface/menu
- Invite de commande - Guide
- Commande terminal mac - Guide
- Menu déroulant excel - Guide
- Diskpart commande - Guide
- Commande dism - Guide
3 réponses
Salut,
Il y avait quelques erreurs de syntaxes, notamment avec les tests. Il faut des espaces après le crochet ouvrant et avant le crochet fermant, ainsi qu'autour du signe "égal" :
Bon : [ "$var" = A ]
Mauvais ["$var"=A] ou [ "$var"=A ] ou ["$var" = A]
A la fin des commandes "dialog" il faut un retour à la ligne (ou un point virgule (;) avant la prochaine commande. Les anti-slashs ne servent que pour une meilleure visibilité du code quand une ligne de commande devient trop longue (c'est le cas pour dialog).
Essaie comme ça :
Malgré le fait que ça marche il y a encore quelques petites erreurs de syntaxe...
Il y avait quelques erreurs de syntaxes, notamment avec les tests. Il faut des espaces après le crochet ouvrant et avant le crochet fermant, ainsi qu'autour du signe "égal" :
Bon : [ "$var" = A ]
Mauvais ["$var"=A] ou [ "$var"=A ] ou ["$var" = A]
A la fin des commandes "dialog" il faut un retour à la ligne (ou un point virgule (;) avant la prochaine commande. Les anti-slashs ne servent que pour une meilleure visibilité du code quand une ligne de commande devient trop longue (c'est le cas pour dialog).
Essaie comme ça :
#!/bin/sh
#Affichage "Graphique"
tmp=/tmp/choix$$
dialog --backtitle "afficher la date plus tard" \
--title "TITRE" \
--msgbox "Texte Intro\nblablabla\nblablab\n\n Press <Enter> to continue..." 10 45
secu1=1
while [ $secu1 = 1 ]
do
dialog --menu "menu" 20 20 20 1 Menu1 2 Menu2 3 Menu3 4 MenuPrincpal 5 Quitter 2>$tmp
choix=$(cat $tmp);
if [ $choix = 1 ]
then
echo $choix
dialog --msgbox "Catégorie Menu 1" 10 45 \
--clear
elif [ $choix = 2 ]
then
dialog --msgbox "Catégorie Menu 2" 10 45 \
--clear
elif [ $choix = 3 ]
then
dialog --msgbox "Catégorie Menu 3" 10 45 \
--clear
elif [ $choix = 4 ]
then
dialog --msgbox "Revenir au menu principal " 10 45 \
--clear
secu1=0
elif [ $choix = 5 ]
then
dialog --msgbox "Quitter le programme" 10 45 \
--clear
else
echo "not a choice"
fi
done
Malgré le fait que ça marche il y a encore quelques petites erreurs de syntaxe...