Rechercher : dans
Par :

[SHELL/BASH] boucle qui contient script

Dernière réponse le 18 jun 2009 à 13:56:44 Madmat59, le 18 jun 2009 à 09:48:17 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [SHELL/BASH] boucle qui contient script » dans :
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Coloration du shell (bash) VoirPourquoi le faire? Quelles informations peuvent être transmises par les couleurs? Les techniques Technique de tput Pourquoi le faire? En personnalisant la couleur des caractères de l'invite (ou du shell), vous la rendez plus lisible. Si...
WSH - Objet WshShell VoirWshShell L'objet WshShell contient des informations sur l'environnement d'exécution, ainsi que des méthodes permettant de gérer l'exécution locale d'applications, de manipuler la base de registre, d'accéder aux ressources systèmes (base de...

1

jmg78, le 18 jun 2009 à 10:29:34

If faut quoter ta variable
car si elle n est pas definie elle est remplacé par du blanc
[ "$var" = "o" ] contact  vocal par mon site voir profil (suis inscrit)

Répondre à jmg78

2

Madmat59, le 18 jun 2009 à 10:40:38

Ok merci je vais essayer

Répondre à Madmat59

3

Madmat59, le 18 jun 2009 à 10:52:02

ça fonctionne, merci bien !

Répondre à Madmat59

4

Madmat59, le 18 jun 2009 à 11:54:23

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

Répondre à Madmat59

5

jipicy, le 18 jun 2009 à 11:59:21

Salut,

if [ $vAjout = "o" -o  $vAjout = "O"  -o $vAjout= "n" -o $vAjout = "N" ] 
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

6

Madmat59, le 18 jun 2009 à 12:34:08

Merci pour cette rapidité ! :D

le -o est équivalent à ou je pense ?

Cordialement Madmat59

Répondre à Madmat59

7

Madmat59, le 18 jun 2009 à 12:40:34

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

Répondre à Madmat59

8

jipicy, le 18 jun 2009 à 13:04:39

[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]$
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

9

 Madmat59, le 18 jun 2009 à 13:56:44

Merci ça fonctionne :-)

Répondre à Madmat59