Bon après avoir retapé intégralement la commande j'ai réussi à la faire passer...
La commande qui foire s'appelle fko, celle qui marche fok :
$ fko="find . -type f -name "*txt" -exec grep "P" {} \;"
$ fok="find . -type f -name "*txt" -exec grep "P" {} \;"
$ echo "$fko" | od -a
0000000 f i n d sp . sp - t y p e sp f sp -
0000020 n a m e sp * t x t sp - e x e c sp
0000040 g r e p sp P sp { } B sp \ ; nl
0000056
$ echo "$fok" | od -a
0000000 f i n d sp . sp - t y p e sp f sp -
0000020 n a m e sp * t x t sp - e x e c sp
0000040 g r e p sp P sp { } sp \ ; nl
Juste après {}, vous voyez le mystérieux caractère B dans fko ??? Aucune idée de comment il s'est retrouvé là et il ne s'affiche pas non plus :
$ echo $fko
find . -type f -name a.txt b.txt c.txt -exec grep P {} \;
$ echo $fok
find . -type f -name a.txt b.txt c.txt -exec grep P {} \;
$ [ "$fko" == "$fko" ] && echo "EGAUX" || echo "DIFF"
EGAUX
$ [ "$fko" == "$fok" ] && echo "EGAUX" || echo "DIFF"
DIFF
Si quelqu'un a une idée de ce qu'il s'est passé ?
D.