quoteэто функция, которая определена (здесь, в моей системе Debian, но я полагаю, что то же самое в Ubuntu) в файле /usr/share/bash-completion/bash_completion, который сам получен /etc/bash.bashrcпри запуске Bash.
Я бы никогда не использовал эту функцию! Если вам нужно процитировать материал так, чтобы безопасно использовать снаряд, пожалуйста , используйте printfс %qмодификатором, как:
printf '%q\n' "Hello my friend I like 'single quotes' as well as \"double quotes\""
На самом деле, даже это очень редко используется, всегда есть лучшие стратегии для вещей высокого уровня, как мы, пользователи, обычно делаем. Эта quoteвещь используется внутренне некоторыми неясными вещами, о которых мы даже не хотим знать. Эта quoteфункция, вероятно, зависит от поставщика / дистрибутива (читайте о Debian) и, вероятно, вообще не переносима и может даже измениться в будущих выпусках.
Редактировать. Я только что проверил систему Ubuntu 12.04, и quoteфункция определена в /etc/bash_completionисточнике /etc/bash.bashrc, полученном самим /etc/profile.
Как я это определил? используя немного эвристики:
Проверьте, quoteпоявляется ли в /etc/profile:
grep '\bquote\b' /etc/profile
Нет. Перейти к следующему шагу.
Какие файлы получены /etc/profile?
grep '[[:space:]]\.[[:space:]]' /etc/profile
У меня есть $i(нужно искать в источнике, что это за источники, но в этом случае это файлы, /etc/profile.d/*.shесли таковые имеются (и если для чтения) и /etc/bash.bashrc. Глядя в /etc/bash.bashrc.
- Находится
quoteв /etc/bash.bashrc? да / нет и т.д ...