quote
es una función que está definida (aquí en mi sistema Debian, pero supongo que es lo mismo en Ubuntu) en el archivo /usr/share/bash-completion/bash_completion
, que en sí mismo se origina /etc/bash.bashrc
en el inicio de Bash.
¡Nunca usaría esta función! Si necesita citar cosas para que un shell pueda usarlas printf
con seguridad, úselas con el %q
modificador, como:
printf '%q\n' "Hello my friend I like 'single quotes' as well as \"double quotes\""
De hecho, incluso esto se usa muy raramente, siempre hay mejores estrategias para cosas de alto nivel como nosotros, los usuarios, usualmente lo hacemos. Esta quote
cosa es utilizada internamente por algunas cosas oscuras que ni siquiera queremos saber. Esta quote
función es probablemente específica del proveedor / distribución (leer específica de Debian) y probablemente no sea portátil en absoluto, e incluso podría cambiar en futuras versiones.
Editar. Acabo de comprobar en un sistema Ubuntu 12.04, y la quote
función se define en /etc/bash_completion
, originada por /etc/bash.bashrc
, propiamente dicha /etc/profile
.
¿Cómo determiné esto? usando un poco de heurística:
Verificar si quote
aparece en /etc/profile
:
grep '\bquote\b' /etc/profile
No. Ve al siguiente paso.
¿De qué proceden los archivos /etc/profile
?
grep '[[:space:]]\.[[:space:]]' /etc/profile
Tengo $i
(necesito buscar en la fuente cuáles son estas fuentes, pero en este caso son los archivos /etc/profile.d/*.sh
si los hay (y si son legibles) y /etc/bash.bashrc
. Buscando /etc/bash.bashrc
.
- Está
quote
adentro /etc/bash.bashrc
? si / no, etc ...