Forum Programmation.shell Comment contrôler le read input dans un script shell

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
1
nov.
2013

Bonjour,

Comment contrôler le read input dans un script shell

Exemple:

echo "Please enter your name and your surname:"
read name surname
echo "Welcome $name $surname"

ici je veux contrôlé si le name et le surname sont introduit tous les deux dans le cas contraire un message d'erreur ce retourne jusqu'au que le name et surname sont introduit pour que l'echo s'exécute

Merci d'avance pour vos propositions !

  • # test et boucle

    Posté par  . Évalué à 5. Dernière modification le 01 novembre 2013 à 09:56.

    lire ton cours sur les tests conditionnels
    et sur les boucles.

    voire uniquement sur les boucles
    l'idée etant, comme tu l'as ecris en francais, de boucler tant que le nom et le prenom ne sont pas rempli.

    un test est une condition "si condition alors action" et se dit en anglais if condition then action
    une boucle sera plutot un "tant que condition faire action", qui s'ecrit while condition do action

    dans ton terminal :

    man bash
    man sh

    dans ton navigateur :

    bash loop and condition

  • # boucle while

    Posté par  . Évalué à 0. Dernière modification le 01 novembre 2013 à 11:20.

    merci pour l'info Neox
    je suis encore bloqué ci-dessous le scripte

    echo "Please enter your name and your surname:"
    read name surname
    while $name $surname = null
    do 
       echo "name and surname are not filled"
       echo "Please enter your name and your surname:"
       read name surname
    done
    echo "Welcome $name $surname"
    • [^] # Re: boucle while

      Posté par  . Évalué à 3. Dernière modification le 01 novembre 2013 à 11:20.

      lire la documentation sur les tests/conditions et les booleens (ET/OU)
      eventuellement ton cours

      tu as ecrit une boucle while, techniquement elle est bonne

      mais il te manque les tests pour savoir si $name est rempli ET $surname est rempli
      ou plutot l'inverse puisque tu veux savoir si l'un des deux, ou les deux sont vides.

      dans ton cas tu veux tester si
      $name OU $surname OU les deux sont vides/null

      don tu veux tester si
      $name est vide OU $surname est vide

      et pour l'usage du forum, quand tu veux repondre, tu peux cliquer sur "repondre" plutot que "poster un commentaire"

      • [^] # Re: boucle while

        Posté par  . Évalué à 1.

        merci NeoX pour l'explication , Je suis nouveau sur le forum et nouveau pour la programmation shell sur linux :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.