Quel est l'opérateur =~
appelé? Est-il seulement utilisé pour comparer le côté droit par rapport au côté gauche?
Pourquoi les doubles crochets sont-ils nécessaires lors de l'exécution d'un test?
ie. [[ $phrase =~ $keyword ]]
Merci
Quel est l'opérateur =~
appelé? Est-il seulement utilisé pour comparer le côté droit par rapport au côté gauche?
Pourquoi les doubles crochets sont-ils nécessaires lors de l'exécution d'un test?
ie. [[ $phrase =~ $keyword ]]
Merci
Comment s'appelle l'opérateur
=~
?
Je ne suis pas sûr qu'il ait un nom. La documentation de bash l'appelle simplement l'opérateur =~
.
Est-il uniquement utilisé pour comparer le côté droit par rapport au côté gauche ?
Le côté droit est considéré comme une expression régulière étendue. Si le côté gauche correspond, l'opérateur renvoie 0
, et 1
sinon.
Pourquoi les doubles crochets sont-ils requis lors de l'exécution d'un test ?
Parce que =~
est un opérateur de la commande composée [[ expression ]]
.
L'opérateur =~
est un opérateur de correspondance d'expressions régulières. Cet opérateur est inspiré de l'utilisation par Perl du même opérateur pour la correspondance d'expressions régulières.
Le [[ ]]
est traité de manière spéciale par bash; considérez-le comme une version augmentée de la construction [ ]
:
[ ]
est en fait une commande intégrée au shell, qui peut également être implémentée en tant que commande externe. Regardez dans votre /usr/bin, il y a probablement un programme appelé "[" là! Strictement parlant, [ ]
ne fait pas partie de la syntaxe de bash.
[[ ]]
est un mot-clé shell, ce qui signifie qu'il fait partie de la syntaxe shell. À l'intérieur de cette construction, certains caractères réservés changent de signification. Par exemple, ( )
signifie des parenthèses comme dans d'autres langages de programmation (ne lançant pas un sous-shell pour exécuter ce qui se trouve à l'intérieur des parenthèses). Un autre exemple est que <
et >
signifient inférieur à et supérieur à, et non redirection shell. Cela permet une apparence plus "naturelle" des expressions logiques, mais cela peut être déroutant pour des programmeurs bash novices.
Wirawan
L'opérateur =~
est l'opérateur de correspondance de motif. Il n'existait pas dans le shell Bourne d'origine, où test
, ou internalement [ ]
, était utilisé pour les conditionnels.
La commande let
, ou [[ ]]
internement, offre davantage de fonctionnalités que test
, y compris des capacités de correspondance de motifs. C'est pourquoi vous devez utiliser [[ ]]
au lieu de [ ]
lors de l'utilisation de =~
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.