if echo ":$c:" | grep -q ":foo:bar:bla:hop:"; then
Ton grep ne va matcher que ce qui contient
:foo:bar:bla:hop:
Heu oui, désolé. Il est tard et je ne vois pas clair. En fait, je voulais dire :
if echo ":foo:bar:bla:hop:" | grep -q ":$c:"; then
et encore je me rend compte que si "$c" == "foo:bar", ça va correspondre alors qu'il ne faudrait pas. Donc j'ai tout faux. :-)
, donc pas ce que l'on souhaite. Avec grep, tu peux faire
grep -x -e foo -e bar -e bla -e hop
Ah oui, voilà, avec l'option -x c'est bien. Je ne connaissais pas. Merci. Ça peut éviter de mettre des -e "^foo$" partout.
grep -x 'foo|bar|blah|hop'
. Mais ça peut faire un faux positif si ton $c contient plusieurs lignes. Donc le case me parait plus propre.
Absolument d'accord, ya pas à tortiller. :-) Merci pour les précisions.
-- François Lafont
Nicolas George
Francois Lafont , dans le message <50be9388$0$1928$, a écrit :
Sinon, juste au passage, d'après ce que j'ai pu lire ici ou là, un test d'égalité en bash se fait avec un seul « = » (mais effectivement « == ») marche aussi.
Petite précision : il ne s'agit pas de bash mais de la commande [ ; elle est probablement en builtin de bash, mais ça pourrait très bien être une commande externe.
Francois Lafont , dans le message
<50be9388$0$1928$426a34cc@news.free.fr>, a écrit :
Sinon, juste au passage, d'après ce que j'ai pu lire ici ou là, un test
d'égalité en bash se fait avec un seul « = » (mais effectivement « == »)
marche aussi.
Petite précision : il ne s'agit pas de bash mais de la commande [ ; elle est
probablement en builtin de bash, mais ça pourrait très bien être une
commande externe.
Francois Lafont , dans le message <50be9388$0$1928$, a écrit :
Sinon, juste au passage, d'après ce que j'ai pu lire ici ou là, un test d'égalité en bash se fait avec un seul « = » (mais effectivement « == ») marche aussi.
Petite précision : il ne s'agit pas de bash mais de la commande [ ; elle est probablement en builtin de bash, mais ça pourrait très bien être une commande externe.
Francois Lafont
Le 05/12/2012 09:15, Nicolas George a écrit :
Petite précision : il ne s'agit pas de bash mais de la commande [ ; elle est probablement en builtin de bash, mais ça pourrait très bien être une commande externe.
Ok. Effectivement elle est bien builtin mais j'ai aussi [ dans le path.
$ type [ [ est une primitive du shell $ which [ /usr/bin/[
Et « man [ » me renvoie d'ailleurs vers une page de manuel (celle de test en l'occurrence).
Merci.
-- François Lafont
Le 05/12/2012 09:15, Nicolas George a écrit :
Petite précision : il ne s'agit pas de bash mais de la commande [ ; elle est
probablement en builtin de bash, mais ça pourrait très bien être une
commande externe.
Ok. Effectivement elle est bien builtin mais j'ai aussi [ dans le path.
$ type [
[ est une primitive du shell
$ which [
/usr/bin/[
Et « man [ » me renvoie d'ailleurs vers une page de manuel (celle de
test en l'occurrence).
Petite précision : il ne s'agit pas de bash mais de la commande [ ; elle est probablement en builtin de bash, mais ça pourrait très bien être une commande externe.
Ok. Effectivement elle est bien builtin mais j'ai aussi [ dans le path.
$ type [ [ est une primitive du shell $ which [ /usr/bin/[
Et « man [ » me renvoie d'ailleurs vers une page de manuel (celle de test en l'occurrence).