Entrée utilisateur dans Bash

MD Aminul Islam 30 janvier 2023
  1. Entrée utilisateur dans Bash
  2. Prise d’entrée Yes ou No de l’utilisateur
Entrée utilisateur dans Bash

Prendre l’entrée de l’utilisateur est très important pour tout programme ou script. De cette manière, un utilisateur interagit avec le système et fournit une entrée au système.

Comme d’autres langages de programmation ou de script, Bash prend en charge l’entrée de l’utilisateur. Le format général pour prendre l’entrée de l’utilisateur est read YOUR_VARIABLE.

Si vous souhaitez créer une balise pour que les utilisateurs sachent de quel type d’entrée ils ont besoin, le format ressemblera à read -p "YOUR INSTRUCTION HERE : " YOUR_VARIABLE. Dans cet article, nous verrons comment nous pouvons apporter les entrées des utilisateurs au système dans Bash.

De plus, nous verrons quelques exemples et explications pertinents au sujet pour faciliter le sujet.

Entrée utilisateur dans Bash

Comme nous en avons déjà discuté, nous devons utiliser le mot-clé read pour prendre les entrées de l’utilisateur dans le système. C’est un mot-clé intégré dans Bash qui lit l’entrée de l’utilisateur.

Dans l’exemple ci-dessous, nous prendrons une entrée utilisateur et fournirons à l’utilisateur la sortie, y compris l’entrée utilisateur. Le code de notre exemple ressemblera à ceci :

read YOUR_VAR
echo "You entered the number $YOUR_VAR"

Ci-dessus partagé un exemple très simple à travers lequel nous prenons une entrée et fournissons une sortie comme ci-dessous.

50
You entered the number 50

Mais comment l’utilisateur saura-t-il qu’il doit fournir une valeur numérique ici ? Nous devons indiquer à l’utilisateur qu’il doit fournir une valeur numérique ici.

Pour ce faire, vous devez suivre l’exemple ci-dessous, qui est similaire mais avancé par rapport au précédent. Le code de notre exemple ressemblera à ce qui suit.

read -p "Please enter a number: " YOUR_VAR
echo "You entered the number $YOUR_VAR"

Lorsque vous exécutez cet exemple, le script affiche d’abord un message Please enter a number : et lorsque l’utilisateur fournit une valeur numérique, il obtient la sortie ci-dessous.

Please enter a number: 50
You entered the number 50

Prise d’entrée Yes ou No de l’utilisateur

Ci-dessous, nous verrons un exemple qui ne prendra que la saisie de l’utilisateur entre Yes ou No. Le code de notre exemple ressemblera à ceci :

while true; do
    read -p "Do you wish to continue? " yn
    case $yn in
        [Yy]* ) echo "You have selected YES!! ";;
        [Nn]* ) echo "You have selected NO!! ";;
        * ) echo "Please answer between YES or NO";;
    esac
done

Nous avons utilisé une boucle while et une instruction conditionnelle case dans notre exemple. Nous prenons l’entrée de l’utilisateur par la ligne read -p "Do you wish to continue the program ? " yn.

Par la ligne [Yy]* ) echo "You have selected YES!! ";; et [Nn]* ) echo "You have selected NO!! ";; nous vérifions l’entrée de l’utilisateur.

Si l’entrée est Y ou y, il affichera la sortie You have selected YES!!, et si l’entrée est N ou n, il affichera la sortie You have selected No!!.

Enfin, nous définissons une sortie par défaut si un utilisateur met une entrée inattendue par la ligne * ) echo "Please answer YES or NO";;. Après avoir exécuté le code, nous obtiendrons une sortie comme celle-ci :

Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? N
You have selected NO!!

Veuillez noter que tout le code utilisé dans cet article est écrit en Bash. Cela ne fonctionnera que dans l’environnement Linux Shell.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Article connexe - Bash Input