Bonjour,

Par ailleurs, on trouvera des crochets en lieu et place des habituelles parenth�ses.
non.
d'ailleurs "habituelles" par rapport � quoi ?
la syntaxe de if est
if COMMANDES; then COMMANDES; [ elif COMMANDES; then COMMANDES; ]... [ else COMMANDES; ] fi
c'est-�-dire que les crochets, en fait, sont une commande, et plus exactement un synonyme de la commande test.
donc, il est possible d'�crire
if grep -q ":${USER}:" /etc/passwd; then echo "$USER est un utilisateur"; else echo "$USER n'est pas un utilisateur"; fi
c'est pourquoi on est quelques uns � pr�coniser l'emploi de test, plut�t que les crochets, pour �viter ce contresens. � un caract�re pr�s , c'est �gal, et plus �loquent.

il vaut mieux ne pas utiliser == avec test pour ne pas confondre le comportement qu'ils ont entre double crochets.

c'est bien de souligner que, lorsqu'on emploi la commande test (ou son synonyme), les variables doivent toujours �tre mises entre guillemets. si, si, c'est une obligation, sous risque d'erreur; tu l'indiques justement.
ce n'est pas le cas pour les doubles crochets. (voir plus bas)

un simili d'expression r�guli�re
pourquoi "simili" ?

il est possible d'omettre les guillemets autour des variables, car les espaces ne causent plus probl�me. C'est cependant une bonne habitude � conserver, car ailleurs dans les scripts, il est plus prudent de les mettre.
bof.

les conditions simples ne requi�rent pas if.
pour reprendre mon exemple pr�c�dent :
grep -q ":${USER}:" /etc/passwd && echo "$USER existe" || echo "$USER n'existe pas"
Partager