[SHELL/BASH] boucle qui contient script

Résolu
Madmat59 Messages postés 107 Statut Membre -  
Madmat59 Messages postés 107 Statut Membre -
Bonjour,

J'ai encore un petit problème avec une boucle, je souhaite en faire une qui englobe tout le programme.

#!/bin/bash
while [ $vAjout = "o" ] || [ $vAjout = "O" ]
do
...
...
...
read -p "Souhaitez-vous ajouter une nouvelle machine (O/N) ?" vAjout
done

Il me detecte une erreur :
./essai.sh: line 2: [: =: unary operator expected
./essai.sh: line 2:  [: command not found

Cordialement Madmat59
Configuration: Linux
Epiphany 2.22

9 réponses

  1. jmg78
     
    if faut quoter ta variable
    car si elle n est pas definie elle est remplacé par du blanc
    [ "$var" = "o" ]
    0
  2. Madmat59 Messages postés 107 Statut Membre 2
     
    Ok merci je vais essayer
    0
  3. Madmat59 Messages postés 107 Statut Membre 2
     
    ça fonctionne, merci bien !
    0
  4. Madmat59 Messages postés 107 Statut Membre 2
     
    J'ai un autre petit probleme, j'ai décidé de rajouter une petite vérification à la fin. cette vérification fonctionne mais il m'indique un message d'erreur : ./essai.sh: line 167: [: N=: unary operator expected

    #!/bin/bash
    until [ "$vAjout" = "n" ] || [ "$vAjout" = "N" ]
    ...
    ...
    ...
    while :
    do
    echo "Souhaitez-vous ajouter une autre machine (O/N) ?"
    read vAjout
    if [ $vAjout = "o" ] || [ $vAjout = "O" ] || [ $vAjout= "n" ] || [ $vAjout = "N" ]
    then
    echo "Choix correct"
    break
    else
    echo "Choix incorrect."
    continue
    fi
    done

    done
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    if [ $vAjout = "o" -o  $vAjout = "O"  -o $vAjout= "n" -o $vAjout = "N" ] 
    ;-))
    0
  7. Madmat59 Messages postés 107 Statut Membre 2
     
    Merci pour cette rapidité ! :D

    le -o est équivalent à ou je pense ?

    Cordialement Madmat59
    0
  8. Madmat59 Messages postés 107 Statut Membre 2
     
    Arf, ça ne fonctione pas il me met cette erreur :

    Souhaitez-vous ajouter une autre machine (O/N) ?
    n
    ./essai.sh: line 169: [: too many arguments
    0
  9. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    [tmpfs]$ cat foo.sh
    #! /bin/sh
    
    #set -xv
    
    while :
    do
    read -p "Voulez-vous continuer ? [oO|nN] : " choix
    if [ "$choix" = "o"  -o "$choix" = "O" -o "$choix" = "n"  -o "$choix" = "N" ]
    then echo "OK";continue
    else echo "Bye...";break
    fi
    done
    
    [tmpfs]$ ./foo.sh
    Voulez-vous continuer ? [oO|nN] : o
    OK
    Voulez-vous continuer ? [oO|nN] : O
    OK
    Voulez-vous continuer ? [oO|nN] : n
    OK
    Voulez-vous continuer ? [oO|nN] : N
    OK
    Voulez-vous continuer ? [oO|nN] : z
    Bye...
    [tmpfs]$
    ;-))
    0
  10. Madmat59 Messages postés 107 Statut Membre 2
     
    Merci ça fonctionne :-)
    0