Dialogue: Comment créer des menus dans vos scripts

dialogue, mensajebox, iota, backtittle, scénario, titre, bash, debian, ubuntu

Dialog est une commande de GNU / Linux qui vous permet de créer des boîtes de dialogue dans le terminal pour vous d'utiliser dans vos scripts de programmation, Je vais vous montrer comment utiliser cette commande.

Pour la réalisation de cet article je commande basadoen le manuel et sur les sites suivants donnent mes sincères remerciements aux créateurs.

http://ovtoaster.com/scripts-en-linux-con-estilo/
http://linuxgazette.net/101/sunil.html

Les couleurs dans les applications et les systèmes

textes écrits dans la ligne de commande: bleu
Sortie dans la ligne de commande: Verde
Les noms de fichiers et le contenu du fichier: Brun

Installation de dialogue

Pour utiliser cet outil dans linux première chose que vous avez à faire est d'installer

Ubuntu

sudo apt-get install dialogue

Debian

apt-get install dialogue

Chapeau rouge

yum de dialogue d'installation

Suse

zypper de dialogue d'installation

syntaxe

Pour les boîtes avec une seule option.

si <largeur-of-box> <top-of-box> est représentée par des valeurs numériques, si nous 0 Ils sont conformes au contenu.

dialogue <Options-common> <options de la boîte> <largeur-of-box> <top-of-box>

Exemple:

--title dialogue "titre"  --Oui Non "Comme le rouge?" 0 0

Pour les cas avec de multiples options

Il est seulement pour les boîtes de type liste, menu ou radiolist. Si nous 0 dans <de nombre d'options de visible> il ajuste automatiquement le nombre d'options.

dialogue <Options-common> <options de la boîte> <largeur-of-box> <top-of-box> <de nombre d'options de visible>.

Exemple:

--checklist dialogue "Choisissez les options souhaitées:" 0 0 0  1 fromage 2 "moutarde" sur  3 anchois au large

options communes

Ce sont des choix qui sont présents dans la plupart des types de boîtes de dialogue “dialogue” les plus courantes sont les suivantes:

 

titres

dialogue, mensajebox, iota, backtittle, scénario, titre, bash, debian, ubuntu

–Titre

Il est utilisé pour mettre le titre de dialogue.

–backtitle

Il est le titre de la fenêtre arrière-plan.

Changer les boutons de texte

–oui-label

Changer le mot YES dans les boîtes de dialogue pour votre souhait.

–D'accord–étiquette

Changer le mot OK dans les boîtes de dialogue pour votre souhait.

–annuler-label

Changer le mot ANNULER des boîtes de dialogue pour votre souhait.

–exit-label

Changer le mot EXIT des boîtes de dialogue pour votre souhait.

–pas de label

Changer le mot NO dans les boîtes de dialogue pour votre souhait.

–coin

Retirer le bouton OK de la boîte de dialogue vous devez appuyez sur Entrée pour entrer.

Sortie de commande

Ces variables vous permettent de décider où seront les choix effectués dans la commande seront par stderr par défaut si l'on peut l'amener à l'écran.

–stderr

Sortie de commande pour stderr si nous choisissons cette option peut obtenir la sortie vers un fichier en ajoutant à la fin de la ligne de dialogue:

2><où enregistrer le fichier de sortie>

–stdout

Avec cette option, nous allons afficher la sortie de la commande que j'utilise quand je veux stocker dans une commande variable, mais ne veulent pas être écrit dans un fichier temporaire, plus tard dans les exemples que nous allons voir comment.

 

zone Options

Message Box (–msgbox)

dialogue, mensajebox, iota, backtittle, scénario, titre, bash, debian, ubuntu

Il sert à mettre un message sur l'écran jusqu'à ce que l'utilisateur appuyez sur Entrée.

--title dialogue "titre" --msgbox "Salut monde" 0 0

Menu OUI / NON (–Oui Non)

dialogue, Oui Non, scénario, bash, debian, ubuntu

Il sert à répondre à des questions avec réponse OUI / NON si la réponse est OUI revient 0 Si la réponse est NON retourne 1

--title dialogue "titre"  --Oui Non "Comme le rouge?" 0 0

Infobox (–infobox)

dialogue, infobox, scénario, titre, bash, debian, ubuntu

Cette boîte affiche les informations que nous voulons est souhaitable d'ajouter un sommeil (attendre x secondes pour continuer commande) pour le voir.

--infobox dialogue "attente 4 secondes" 0 0 ; dormir 4

Headbox (–zone de saisie)

dialogue, zone de saisie, scénario, titre, bash, debian, ubuntu

Il est utilisé pour recueillir des données.

 --title dialogue "nom" --zone de saisie "Mettez votre nom:" 0 0

Mot de Passe (–PasswordBox)

dialogue, PasswordBox, scénario, bash, debian, ubuntu

Elle est égale à la zone de saisie, mais les caractères tapés ne sont pas affichées.

 --title dialogue "mot de passe" --PasswordBox "Mettez votre mot de passe:" 0 0

boîte (–zone de texte)

dialogue, tesxtbox, scénario, bash, debian, ubuntu, linux, GNU / linux

La boîte est une visionneuse de fichiers et nous montre le fichier que vous indiquez.

--title dialogue "fichier fstab" --textbox / etc / fstab 0 0

menu Box (–menu)

dialogue, menu, scénario, bash, debian, ubuntu, linux, GNU / linux, boîte de menu

Elle nous permet de choisir une option parmi plusieurs options numérotées

--menu dialogue "La meilleure tortilla est:" 0 0 0 1 "avec des oignons" 2 "sans oignon" 3 "avec piminetos" 

Box liste (–liste de contrôle)

dialogue, liste de contrôle, scénario, bash, debian, ubuntu, linux, GNU / linux

Il est un menu avec plusieurs options que nous pouvons choisir plusieurs. Les options mises en sur Ils seront éclairés et à mettre en de supprimé.

--checklist dialogue "Choisissez les options souhaitées:" 0 0 0  1 fromage 2 "moutarde" sur  3 anchois au large

Une mention spéciale au sein de liste de contrôle pour l'option –séparée sortie qui nous renvoie une ligne pour chaque sélection rendue très utile pour exécuter des commandes différentes pour chaque sélection effectuée.

Box radiolist (–radiolist)

dialogue, radiolist, scénario, bash, debian, ubuntu, linux, GNU / linux

Il est un menu avec plusieurs options que nous pouvons choisir un seul.

--radiolist dialogue "Choisissez votre omelette préférée:" 0 0 0 1 "avec l'oignon" de  2 "Pas d'oignon" sur 3 "poivrons" de 4 "asperges" de

boîte de calendrier (–calendrier)

dialogue, calendar, calendrier, scénario, bash, debian, ubuntu, linux, GNU / linux

Il est un calendrier où l'on peut choisir une date.

--title dialogue "calendrier" --calendrier "Choisissez une flèche" 0 0

Autres options boîte

En plus de la boîte d'options que nous avons vu il y a d'autres options qui pourraient être intéressants à utiliser pour les connaître ne pas hésiter à venir à l'aide.

dialogue homme

Comment utiliser les données obtenues avec dialogue

Pour utiliser un script pour les données compilées par les boîtes de dialogue, il varaias dialogue des options que j'ai trouvé, mais sûrement se produire pour vous, elle ne sera pas hésiter à comunicarmelas plus et ajouter dans le poste.

Rediriger la sortie vers un dialogue de fichier.

Nous pouvons stocker la sortie de commande pour une boîte de dialogue de fichier, habituellement, nous allons mettre dans le répertoire / tmp et supprimer après utilisation, puis je mets un script avec un exemple expliqué.

#!/bin/bash
# Par Ignacio Alba Obaya
# http://aplicacionesysistemas.com
# exécuter la boîte de dialogue en mettant fin à 2>/tmp / nombre.tmp $$. 
# stocker dans un nom de fichier saisi.
# rappelez-vous que 2> redirige la sortie d'erreur dans un fichier.
--title dialogue "nom" --zone de saisie "Mettez votre nom:" 0 0 2>/tmp / nombre.tmp $$.
# supprimer l'écran
clair
# affiche le nom enregistré
cat /tmp/nombre.tmp.$$
# supprimer le fichier nommé
rm -f /tmp/nombre.tmp.$$
# Nous faisons un saut de ligne afin que nous ne sommes pas amassons l'invite
echo -e "\n"

Rangez la réponse dans une variable.

Pour stocker le résultat que nous allons faire cela en créant une fonction et de l'appeler d'une variable.

#!/bin/bash
# Par Ignacio Alba Obaya
# http://aplicacionesysistemas.com
# Stocker le résultat dans une boîte de dialogue variables
# Nous créons la fonction fundialog
fundialog = ${fundialog = dialogue}
# Nous créons une variable avec la boîte de dialogue de date de sortie 
# redireccinando avec boîte de dialogue de sortie --stdout 
# la sortie standard, Notez que la fonction se situe entre 
# accents de la clé [ sinon ça ne marche pas.
fecha = `$ fundialog --stdout --title "calendrier" --calendrier "Choisissez une date" 0 0`
# Afficher la date capturé
echo date de $

Comment gérer les sorties liste

Nous avons également besoin de gérer de multiples options de sortie ont échéant une liste de contrôle de telle sorte que chaque option de déclenchement différents événements. Un hobble pour ce faire est la suivante:

#!/bin/bash
# Par Ignacio Alba Obaya
# http://aplicacionesysistemas.com

# Nous avons créé le funcheck varaible dans lequel nous stockons 
# dialogue de commande avec l'option --separate-sortie
funcheck =(dialogue --checklist --separate-sortie "Sélectionnez les groupes auxquels ils appartiennent:" 0 0 0)

# Nous définissons les options sur l'écran
# semblent allumé le, nous avons mis sur.
options =(1 "option 1" sur 
 2 "option 2" de
 3 "option 3" de
 4 "option 4" de
 5 "option 5" sur
 6 "option 6" de
 7 "option 7" de)

# Nous créons la fonction des sélections avec des options en cours d'exécution funcheck 
# et transmet la sortie à la borne pour la prochaine course
# commandes
sélections = $("${funcheck[@]}" "${Options[@]}" 2>&1 >/dev / tty)

# nettoyer l'écran
clair

# ajouter une boucle pour exécuter une fonction de commande 
# les sélections peuvent changer l'écho par 
# des commandes ou des scripts
pour la sélection dans les sélections de $
faire
 $ Sélection de cas
 1)
 écho "Vous avez choisi l'option 1"
 ;;
 2)
 écho "Vous avez choisi l'option 2"
 ;;
 3)
 écho "Vous avez choisi l'option 3"
 ;;
 4)
 écho "Vous avez choisi l'option 4"
 ;;
 5)
 écho "Vous avez choisi l'option 5"
 ;;
 6)
 écho "Vous avez choisi l'option 6"
 ;;
 7)
 écho "Vous avez choisi l'option 7"
 ;;
 ESAC
terminé

Conclusions sur Dialog

Dans mon dialogue opinion est une façon élégante de créer des menus pour nos scripts peuvent facilement créer des programmes pour terminaux.

Merci d'avoir lu notre blog espérons que vous aimez notre contenu, Je vous demande de ne pas oublier +1 ou de partager sur les réseaux sociaux, nous ne gagnons rien avec ce blog et j'aime pour nous chacun ou plus 1 es una pequeña recompensa 😀


Au sujet de Ignacio Alba Obaya

Micro-ordinateur et de la formation technique pour l'emploi. Amant de nouvelles technologies. GNU Manager / Linux et Windows.

Laisser un commentaire