Je suis nouveau à la programmation bash. J'ai lu deux bons, longs guides, mais ils ont fait un désordre dans ma tête sur les opérateurs et les mots clés.
Qui sont plus souvent et largement utilisé? Je ne sais pas quand utiliser qui et pourquoi.
test
,[[ ]]
Ou[ ]
ou même(( ))
$((exp))
ou$[exp]
-gt
ou>
,ge
ou ,>=
etc.- quand utiliser
<
et>
ou( )
et quand nous devons échapper avec ,\:
\<
\(
etc. ==
ou=
(comparaisons de chaînes)
Je sais que les différences fondamentales entre [
et [[
mais d' autres questions sont un mystère pour moi.
Merci d'avance
Réponses:
test
est un shell intégré qui (évidemment) teste une condition donnée. Quelques coquilles âgées ont besoin de commande spéciale. Donc , vous trouverez également un programme à/usr/bin/test
.[
est également un programme pour tester une condition. Ce logiciel a également besoin d' un support de fermeture et vous pouvez le trouver à/usr/bin/[
.[[…]]
est une alternative àtest
et[
. Il a été développé pour le shell Korn (ksh
). Mais vous trouverez également dans les versions Bash supérieur à 2 et dans le Z Shell. Les doubles crochets ont des fonctionnalités intéressantes:-a
(ET) ou-o
(OR) , vous pouvez utiliser&&
ou||
.=
peut faire beaucoup plus.((…))
est équivalent àlet
. Donc , fondamentalement ,((expression))
est le même quelet "expression"
. Cependant , aveclet
vous pouvez utiliser plus d'une expression, mais des accolades doubles permettent une seule expression.$((…))
(et$[…]
) fait quelques calculs. Vous shell essaie de calculer l'expression entre les accolades et remplace l'expression par le résultat. Alorsecho $((1+1))
conduit àecho 2
. Ainsi , vos coquilles imprime le numéro 2.Chaque fois que vous voulez comparer deux chiffres que vous devez utiliser l'option avec un tiret et deux lettres (
-ge
,-lt
etc.). Si vous voulez comparer les chaînes , vous devez utiliser=
ou!=
.Il est assez difficile de répondre à votre question concernant l'évasion. Parce que cela dépend du logiciel que vous utilisez en plus du shell. Donc, c'est à dire
grep
et ontgrep -E
besoin de s'échapper différents. Ceci est également le cassed
,awk
et d' autres. La meilleure option consiste donc à consulter la page de manuel. Après un certain temps, vous vous habituez et savez quand utiliser l'évasion.la source
if [ 2 -gt 1 ]; …
c'est plus courant, car je le vois plus souvent dans les scripts shell et, pour autant que je sache, c'est compatible POSIX.