не удалось перезапустить сервер Apache AWS EC2 Ubuntu machine

quote - это функция, которая определена (здесь, на моей системе Debian, но я думаю, что это то же самое на Ubuntu) в файле /usr/share/bash-completion/bash_completion, который сам по себе используется /etc/bash.bashrc при запуске Bash. [!d0 ]

Я бы никогда не использовал эту функцию! Если вам нужно процитировать материал, чтобы его можно было безопасно использовать оболочкой, используйте 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. [ f22] в /etc/bash.bashrc? да / нет и т. д. ...
1
задан 30 September 2015 в 18:58

0 ответов

Другие вопросы по тегам:

Похожие вопросы: