J'ai découvert l'option -r de read à l'occasion de l'écriture d'une fonction qui ne marchait pas sans cette option:
function qbs() { if [ $# -gt 0 ] ; then l=$1; else read -r l; fi; echo "$l" | sed -e 's/\\/\\\\/g'; }
Elle sert à transporter une commande du shell vers emacs, qui a besoin que les backslashs soient quotés et donc, au minimum, conservés.
Par exemple:
1 2 3 4 5 6
| $ echo foo.bar | sed -e 's/\..*//' # <- La commande qu'on voudrait donner à emacs
foo
$ qbs
echo foo.bar | sed -e 's/\..*//' # <- Ce que j'ai copié/collé (dans le shell)
echo foo.bar | sed -e 's/\\..*//' # <- Ce que 'qbs' a produit ("read -r" obligatoire!), à copier/coller dans emacs |
Conclusion: l'option -r de read, si elle est parfois utile, peut aussi être parfois indispensable!
Partager