Commande Bash Select

Commande Bash Select
Sélectionner La commande est utilisée dans les scripts pour la création de menu. Différents types de tâches de génération de menu peuvent être implémentées avec le sélectionner Commande telle que: Création de la liste de directions basée sur le menu, création d'un menu à partir de contenu de fichier, etc. Comment implémenter ces types de tâches en utilisant Bash sélectionner La commande est affichée dans ce tutoriel d'insats Linux.

Syntaxe:

Sélectionnez V dans Data_List
faire
déclaration 1
Déclaration2
Déclaration3
fait

Ici, l'élément de menu sera créé à partir de la data_list qui peut être un tableau ou une autre source de données. Chaque élément de menu récupère à partir de Data_List et stores dans une variable pour créer le menu. La commande 'select' peut être utilisée avec la commande 'case' pour créer le menu. Différents types de tâches de création de menu sont présentés ici en utilisant des exemples très simples.

Exemple-1: Création d'un menu simple

Créer un fichier bash nommé SELECT1.shot avec le script bash suivant. Ici, 'sélectionner' La commande récupérera chaque données de la liste et imprimera les données comme menu. Le script suivant contient les noms de marque des téléphones mobiles et après avoir exécuté le script, il créera un menu de marques mobiles et demandera à l'utilisateur de choisir n'importe quelle marque. Il imprimera le nom de la marque sélectionnée. L'utilisateur doit appuyer Ctrl + c Pour se terminer du script.

#!/ bac / bash
# Définissez la liste des menues ici
Sélectionnez la marque dans Samsung Sony iPhone Symphony Walton
faire
Echo "Vous avez choisi la marque $"
fait

Sortir:

Exécutez le script.

$ bash select1.shot

La sortie suivante apparaîtra après l'exécution du script et la sélection de l'élément de menu numéro 1 et 4.

Exemple-2: Sélectionnez la commande avec une instruction de cas

Comment créer un menu bash avec une instruction de cas est affiché dans cet exemple. Créer un fichier bash nommé select2.shot avec le script bash suivant. Après l'exécution du script, l'utilisateur sélectionnera tout élément de menu et l'instruction de cas correspondra à la valeur sélectionnée avec la valeur de cas. Ici, plusieurs valeurs de cas sont utilisées pour correspondre à l'élément de menu sélectionné. Si aucune de la valeur de cas ne correspond à l'élément de menu sélectionné, «entrée non valide» imprimera.

#!/ bac / bash
Echo "quel système d'exploitation aimez-vous?"
# Les noms du système d'exploitation sont utilisés ici comme source de données
Sélectionnez le système d'exploitation dans Ubuntu Linuxmint Windows8 Windows7 Windowsxp
faire
cas $ os dans
# Deux valeurs de cas sont déclarées ici pour faire correspondre
"Ubuntu" | "Linuxmint")
Echo "J'utilise également $ os."
;;
# Trois valeurs de cas sont déclarées ici pour faire correspondre
"Windows8" | "Windows7" ​​| "Windows XP")
Echo "Pourquoi n'essayez-vous pas Linux?"
;;
# Correspondant aux données non valides
*)
Echo "Entrée non valide."
casser
;;
ESAC
fait

Sortir:
Exécutez le script.

$ bash select2.shot

La sortie différente apparaîtra pour une sélection différente. Ici, 1 est sélectionné la première fois que c'est Ubuntu. il correspond à la première valeur de cas imprimer le message "J'utilise aussi Ubuntu". 4 est sélectionné la prochaine fois et l'élément de menu est Windows 7 Mais il n'y a pas de valeur de cas avec ce nom. Donc, cette fois, il a imprimé "Entrée invalide" et se terminer du script.

Exemple-3: Création du menu de bash imbriqué

Lorsqu'un menu est créé sous le menu de l'autre, il s'appelle un menu imbriqué. Le menu imbriqué peut être créé dans la base en utilisant deux ou plusieurs instructions de sélection et de cas. Créer un fichier bash nommé SELECT3.shot avec le script bash suivant. Ici, deux instructions sélectionnées et de cas sont utilisées pour implémenter le menu imbriqué. Le menu parent contient 4 éléments et sous-menu contient 3 éléments ici.

#!/ bac / bash
Bien que vrai
faire
# Éléments de menu parent déclaré ici
Sélectionnez l'élément dans le HDD du moniteur d'imprimante de souris
faire
# Déclaration de cas pour comparer les premiers éléments du menu
Case $ article dans
Souris)
Echo "quel type de moniteur vous aimez?"
;;
Imprimante)
# Des articles sous-menu ici déclarés ici
Sélectionnez Sub_Item dans Samsung HP Dell
faire
# Déclaration de cas pour les articles de Sun-Men
cas $ sub_item dans
Samsung)
Echo "Le prix de l'imprimante Samsung est de 100 $"
casser
;;
HP)
Echo "L'imprimante de prix de l'imprimante HP 880 est de 450 $"
# retour au menu parent
casser
;;
Dell)
Echo "Aucune imprimante Dell n'est disponible maintenant"
# Retour au menu parent
pause 2
;;
ESAC
fait
casser
;;
Moniteur)
Echo "Achetez notre nouveau moniteur Samsung à faible coût"
Break # Retour au menu actuel (principal)
;;
HDD)
Echo "Des disques durs de bonne qualité sont disponibles dans le stock"
# retour du script
pause 2
ESAC
fait
fait

Sortir:

Exécutez le script.

$ bash select3.shot

Après avoir exécuté le script, le menu parent avec 4 éléments affichés. Ici, seul le deuxième élément de menu du menu parent contient sous-menu. Après avoir sélectionné 2, le sous-menu est apparu et lorsque l'utilisateur a sélectionné 3, il a affiché le message correspondant de l'élément de menu 3 et revient au menu parent.

Exemple-4: Créez un menu bash avec un tableau

Une variable de tableau peut stocker plusieurs données. Ainsi, vous pouvez utiliser un tableau comme liste de données pour créer un menu de base. Comment vous pouvez utiliser un tableau avec une instruction SELECT pour créer un menu est affiché dans cet exemple. Créer un fichier bash nommé SELECT4.shot avec le script bash suivant. Le sous-programme Bash est utilisé dans ce script pour créer un menu à partir du tableau. Un tableau avec trois éléments est utilisé et menu_from_array () est appelé pour créer le menu. Le script vérifiera le numéro d'élément de menu sélectionné entre 1-3 ou non. Si le numéro n'est pas dans cette plage, il instruise à l'utilisateur le sélectionner dans cette plage, il imprimera l'élément de menu Sélectionner avec un autre texte.

#!/ bac / bash
menu_from_array ()

sélectionner un article; faire
# Vérifiez le numéro d'élément de menu sélectionné
Si [1 -le "$ réponse"] && ["$ réponse" -le $ #];
alors
ECHO "Le système d'exploitation sélectionné est $ item"
casser;
autre
ECHO "Mauvaise sélection: sélectionnez n'importe quel numéro à partir de 1 - $ #"
Fi
fait

# Déclarer le tableau
Linux = ('Ubuntu' 'Linux Mint' 'Centos')
# Appelez le sous-programme pour créer le menu
menu_from_array "$ Linux [@]"

Sortir:

Exécutez le script.

$ bash select4.shot

Ici, 2 est d'abord sélectionné qui se trouve dans la plage et imprimé le texte. 6 est sélectionné la deuxième fois hors de portée et suggère à l'utilisateur de sélectionner un nombre dans la plage.


Pour comprendre ce code, nous devons apprendre quelques astuces 😉

  • Parce que le dans La liste n'est pas fournie dans les paramètres de position sélectionnés qui sont utilisés qui sont dans ce cas les mots du tableau transmis à la fonction
  • $ Réponse stocke la valeur d'entrée par l'utilisateur
  • La logique si et conditionnelle dans la fonction consultent la réponse se situe entre 1 et la taille du tableau des paramètres de position

Conclusion

La tâche de création de menu Bash en utilisant une instruction SELECT est expliquée dans ce tutoriel aussi simple que possible. Il existe de nombreuses façons simples et sophistiquées d'utiliser SELECT dans Bash lors de la création de menus et nous espérons que ces exemples vous offriront un point de départ pour créer vos propres combinaisons.