Bash regex =~ opérateur
Qu'est-ce que l'opérateur =~
appelé? Il est seulement utilisé pour comparer la droite contre la gauche?
Pourquoi sont doubles crochets requis lors de l'exécution d'un test?
ie. [[ $phrase =~ $keyword ]]
Merci
- Quelqu'un a posé cette question. Il a un lien pour le manuel. [Lien][1] [1]: stackoverflow.com/questions/12454731/...
- ...J'ai fermé cette instance comme un dédoublement de celui-ci (car à mon humble avis, les réponses sont mieux ici).
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que ça a un nom. Le la documentation de bash juste l'appelle la
=~
opérateur.Le côté droit est considéré comme une expression régulière étendue. Si le côté gauche de matchs, l'opérateur retourne
0
, et1
autrement.Parce que
=~
est un opérateur de[[ expression ]]
composé de commande.BASH_REMATCH
tableau, qui mérite d'être mentionné. Aussi,[[
n'est pas une commande, C'est un mot-clé.type [[
dit que[[
est une coquille mot-clé, mais la page de manuel fait référence à[[
comme un conditionnel de la commande au moins une fois. Meh.[[
est une coquille mot-clé qui introduit un composé de commande[[ ... ]]
, tout commeif
est une coquille mot-clé qui introduit laif..then..fi
composé de commande.La
=~
opérateur est une expression régulière de l'opérateur. Cet opérateur est inspiré par Perl à l'utilisation de l'opérateur de même pour l'expression régulière correspondant.La
[[ ]]
est spécialement traités par bash; considère qu'une version augmentée de[ ]
construire:[ ]
est en fait un shell de commande intégrée, qui peut être implémenté comme une commande externe. Regardez votre /usr/bin, il est probablement un programme appelé "[" il y! Strictement parlant,[ ]
ne fait pas partie de la syntaxe bash.[[ ]]
est une coquille mot-clé, ce qui signifie qu'il fait partie de la syntaxe shell. À l'intérieur de cette construction, certains caractères réservés changer de sens. Par exemple,( )
signifie parenthèse comme d'autres langages de programmation (pas de lancer un shell interne est exécuté à la réalisation de ce qui est à l'intérieur de la paretheses). Un autre exemple est que<
et>
moyen inférieur à et supérieur, pas de coquille de redirection. Cela permet en plus "naturel" de l'apparence des expressions logiques, mais il peut être déroutant pour les débutants bash programmeurs.Wirawan
[[ ]]
et[ ]
... Il effacé de mon esprit