Script bash

Bonjour,

J'aimerais qu'on ne puisse pas rentrer de chaine vide dans le input ou de ne pas faire direct "enter"
Donc l'input doit obligatoirement contenir quelque chose.

Avec ce code il me renvoie une erreur du type:
[: 10:  : unexpected operator


echo -n "Enter your reason: "
read name

while [ $name = " " ]; 
do
echo -n "Enter your reason: "
read name
done 


Quelqu'un aurait-il une solution?

merci d'avance
Configuration: Windows XP
Firefox 3.6

5 réponses

  1. Modérateur
    Salut,

    Il faut quoter ta variable et ne pas laisser un espace entre les guillemets :

    while [ "$name" = "" ]; 
    1
    1. Contributeur
      Salut déjà de mettre des parenthèses pas des accolades
      0
      1. Contributeur
        hello
         name=""
        while [ -z "$name" ] ; do
        echo -n "Enter your reason: " ; read name 
        done
        
        0
        1. Contributeur
          Ah merde je pensais que c'étais obligatoire les parenthèses et pas d'accolades, je me tais ;)
          0
          1. Modérateur
            En plus ce n'est pas des accolades ( { } ), c'est des crochets ( [ ] );-))
            0
        2. merci dubcek ça fonctionne ;-)
          0