Script bash

j3ff_std -  
 j3ff_std -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

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

    while [ "$name" = "" ]; 
    1
  2. miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
     
    Salut déjà de mettre des parenthèses pas des accolades
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
     name=""
    while [ -z "$name" ] ; do
    echo -n "Enter your reason: " ; read name 
    done
    
    0
  4. miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
     
    Ah merde je pensais que c'étais obligatoire les parenthèses et pas d'accolades, je me tais ;)
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      En plus ce n'est pas des accolades ( { } ), c'est des crochets ( [ ] );-))
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. j3ff_std
     
    merci dubcek ça fonctionne ;-)
    0