Re: [ ] ou [[ ]] ?

Page principale

Répondre à ce message
Auteur: marc.terrier
Date:  
À: Jérémy Bobbio
CC: guilde
Sujet: Re: [ ] ou [[ ]] ?
Merci à tous les deux pour vos réponses. Les subtilités expliquées dans la page suggérée par Samuel font que je ne regrette pas d'avoir posé la question.

A+

--
Marc

----- Mail original -----
De: "Jérémy Bobbio" <lunar@???>
À: guilde@???
Envoyé: Jeudi 27 Octobre 2011 13:36:59
Objet: Re: [ ] ou [[ ]] ?

On Thu, Oct 27, 2011 at 12:22:33PM +0200, Marc TERRIER wrote:
> Est-ce qu'une bonne âme voudrait bien me rappeler la différence entre
> les crochets doubles et les crochets simples, dans un 'if' ou un
> 'while', en script shell ? J'écris en ksh, au cas où cette info
> aurait une importance, mais c'est peut-être pareil en bash...


Ma page de man préférée sous Debian pour le shell, c'est celle de dash.

En tout cas, je cite :

  if list
  then list
  [ elif list
  then    list ] ...
  [ else list ]
  fi


while list
do list
done

Ici, `list` c'est une liste de commandes. Et le flux d'exécutions sera
dévié selon le résultat de la dernière commande de cette liste.

`[` est un binaire. Sous Debian, c'est livré dans le paquet coreutils.
Et en fait, c'est la même chose que le binaire `test`. Le dernier
ergument de la commande `[` doit être `]`, mais c'est avant tout pour
une question de lisibilité.

Bon, maintenant, dans tous les shells un peu récent, `[` est un
built-in, c'est à dire que le shell ne va pas lancer l'exécutable mais
faire les calculs en direct.

`[[`, c'est un truc de bash. Et ça calule plus ou moins les même trucs
que `test`. Mais pas tout à fait pareil.

HTH,
--
Jérémy Bobbio                        .''`.
lunar@???                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'`
                                      `-