-
test
est un Shell intégré qui (évidemment) teste une condition donnée. Certains shells plus anciens ont besoin d'une commande spéciale. Vous trouverez donc aussi un programme à /usr/bin/test
.
-
[
est également un programme permettant de tester une certaine condition. Ce logiciel nécessite également un crochet de fermeture et vous pouvez le trouver à l'adresse suivante /usr/bin/[
.
-
[[…]]
est une alternative à test
y [
. Il a été développé pour le Shell de Korn ( ksh
). Mais vous le trouvez également dans les versions de Bash supérieures à 2 et dans le Z Shell. Les doubles crochets ont quelques fonctionnalités intéressantes :
- Le Shell ne fait pas de découpage de mots ou d'expansion de noms de fichiers.
- Vous n'avez pas besoin de citer.
- Au lieu de
-a
(AND) ou -o
(OU) vous pouvez utiliser &&
o ||
.
- Le site
=
peut faire beaucoup plus.
-
((…))
est équivalent à let
. Donc, en gros ((expression))
est la même chose que let "expression"
. Cependant, avec let
vous pouvez utiliser plus d'une expression, mais les doubles accolades ne permettent qu'une seule expression.
-
$((…))
(et aussi $[…]
) effectue certains calculs. Vous Shell essaie de calculer l'expression à l'intérieur des accolades et remplace l'expression par le résultat. Donc echo $((1+1))
conduit à echo 2
. Votre coquille imprime donc le chiffre 2.
Chaque fois que vous voulez comparer deux nombres, vous devez utiliser l'option avec un tiret et deux lettres ( -ge
, -lt
etc.). Si vous voulez comparer des chaînes de caractères, vous devez utiliser =
o !=
.
Il est assez difficile de répondre à votre question concernant l'évasion. Car cela dépend du logiciel que vous utilisez en plus du Shell. Donc, par exemple grep
y grep -E
nécessitent un échappement différent. C'est également le cas avec sed
, awk
et autres. La meilleure option est donc de jeter un coup d'oeil à la page de manuel. Après un certain temps, vous vous habituerez et saurez quand utiliser l'échappement.