Bonjour,
Question trés simple mais introuvable sur le net à cause de l'affluence de résultats diverses... C'est pour une ligne de commande du genre
if [ ${z} = 1 ] "ET" [${a} = 1]
then ..
Merci!
Bonjour,
Question trés simple mais introuvable sur le net à cause de l'affluence de résultats diverses... C'est pour une ligne de commande du genre
if [ ${z} = 1 ] "ET" [${a} = 1]
then ..
Merci!
Deux solutions co-existent:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if [ $z = 1 -a $a = 1 ] then ... if [ $z = 1 ] && [ $a = 1 ] then ...
Le -a va t'aider ( -a = and)
NB: J'ai remplacé le = par un -eq car il semble que les variables a et z soient des nombres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if [ $z -eq 1 -a $a -eq 1 ] ; then ... fi
Par contre si a et z sont des chaînes de caractères alors effectivement on peut utiliser un =
Si les variables sont des nombres :
le '-a' date des origines du shell, ainsi que le -eq, ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (( $a == 1 && $b == 1)) ...... si non [[ &a = "chaine" && $b = "chaine" ]] ....
le [ ... ] de la "mi temps" du shell
le [[..]] et ((..)) de la normalisation ISO entre autre du Korn shell.
*nix etant tres conservateur toutes les syntaxes sont acceptées (sous réserve de "shell ISO à minima").
Partager