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
`. `'`
`-