Le 22/12/17 à 09:19, Jean-Marc <jean-m...@6jf.be> a écrit : JM> Thu, 21 Dec 2017 18:13:19 +0100 JM> Daniel Caillibaud <m...@lairdutemps.org> écrivait : JM> JM> > Pourquoi ? JM> > JM> > $ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO JM> > KO JM> > JM> > $ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO JM> > KO JM> > JM> > ?? JM> JM> Parce qu'entre guillemets, les caractères ^ et $ sont considérés comme JM> des caractères normaux.
Merci pour cette explication claire (et merci aussi à Pierre pour l'avoir pointé). JM> $ set -x JM> JM> $ [[ 'abcd' =~ '^ab' ]] && echo ok || echo KO JM> + [[ abcd =~ \^ab ]] JM> + echo KO JM> KO JM> JM> $ [[ 'abcd' =~ ^'ab' ]] && echo ok || echo KO JM> + [[ abcd =~ ^ab ]] JM> + echo ok JM> ok JM> JM> $ [[ 'abcd' =~ 'cd$' ]] && echo ok || echo KO JM> + [[ abcd =~ cd\$ ]] JM> + echo KO JM> KO JM> JM> $ [[ 'abcd' =~ 'cd'$ ]] && echo ok || echo KO C'est surtout ça qui me choque, car $ est normalement toujours interprété par le shell, comme !, sauf s'il est entre simple quote ' En tout cas des années d'usage de bash m'ont bien ancré dans le crâne que dès qu'il y a un $ ou un ! faut toujours mettre des ' autour, sinon y'a toujours un risque que ça donne des résultats inattendus ;-) Ça va me motiver pour enfin passer à zsh ;-) -- Daniel Y a pas de grands, y a pas de petits. La bonne longueur des jambes, c'est quand les pieds touchent bien par terre. Coluche
pgpa5YlSL9Gk9.pgp
Description: Signature digitale OpenPGP