L'entrée utilisateur dans les scripts
Fait partie de la section Les fondamentaux du Journey Terminal de Coddy. Leçon 69 sur 82.
Les variables sont utiles, mais vous voulez parfois que votre script demande des informations à l’utilisateur pendant son exécution. La commande read met le script en pause et attend que l’utilisateur saisisse quelque chose, puis stocke cette entrée dans une variable.
Voici comment cela fonctionne :
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"Lorsque ce script s’exécute, il affiche la question, attend que l’utilisateur saisisse son nom et appuie sur Entrée, puis le salue. La commande read prend ce que l’utilisateur saisit et le stocke dans la variable name.
Vous pouvez rendre l’invite plus claire en utilisant l’option -p, qui combine le message de l’invite et la saisie sur la même ligne :
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"Cela affiche Enter your name: et attend une saisie sur la même ligne, ce qui paraît plus soigné. L’option -p prend le texte de l’invite comme argument, suivi du nom de variable dans lequel stocker la saisie.
Les entrées utilisateur rendent les scripts interactifs et adaptables. Au lieu de coder des valeurs en dur, tu peux écrire un seul script qui fonctionne différemment en fonction de ce que l’utilisateur fournit à chaque exécution.
Défi
FacileCréez un script shell appelé greeter.sh qui demande à l’utilisateur sa couleur préférée, puis affiche un message à l’aide de sa réponse.
Votre script doit :
- Commencer par la ligne shebang (
#!/bin/bash) - Utiliser
readavec l’option-ppour afficher l’invite :What is your favorite color? - Stocker la réponse dans une variable appelée
color - Utiliser
echopour afficher :Nice! [color] is a great color!(où [color] correspond à la réponse de l’utilisateur)
Rendez le script exécutable, puis exécutez-le avec blue comme réponse. Ce terminal n’est pas interactif : il ne peut pas s’arrêter et attendre que vous saisissiez du texte. Envoyez donc la réponse au script à l’aide d’un tube :
echo "blue" | ./greeter.shVotre sortie doit être :
Nice! blue is a great color!Remarque : l’invite
What is your favorite color?ne s’affiche pas ici.read -paffiche son invite uniquement lorsque l’entrée provient d’un clavier ; ici, elle provient du tube.
Entourez chaque ligne que vous écrivez de guillemets simples :
echo 'echo "Hello $name"' >> script.sh. Les guillemets simples empêchent le shell de remplacer$namependant l’écriture du fichier. Ainsi, le script conserve la variable et la développe lors de son exécution. Les guillemets doubles substitueraient immédiatement la valeur.
Astuce : construisez le script ligne par ligne en utilisant
echoavec une redirection. Utilisezread -p "What is your favorite color? " colorpour afficher l’invite et récupérer la réponse, puisecho "Nice! $color is a great color!"pour afficher le résultat.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal13Bases du scripting shell
Qu'est-ce qu'un script shellCréer et exécuter un scriptLes variables dans les scriptsL'entrée utilisateur dans les scriptsL'instruction ifLa boucle forLa boucle whileRécapitulatif - Devine le nombre2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de donnéesEntraînez-vous par vous-même : Playground Terminal