Я уверен, что этот вопрос может показаться некоторым из вас глупым, но я здесь, чтобы выучить.
Верны ли эти предположения для большинства языков?
РЕДАКТИРОВАТЬ : ОК, давайте предположим, что я говорю о сценариях Perl / Bash.
'Single quotes'
=> Никакой интерпретации (например, '$' или любой метасимвол будет рассматриваться как символ и будет напечатан на экране)
"Double quotes"
=> Переменная интерпретация
Чтобы быть более точным в моих проблемах, я пишу несколько сценариев оболочки (в которых кавычки иногда могут быть большими хлопотами) и написал следующую строку:
CODIR=`pwd | sed -e "s/$MODNAME//"`
Если бы я использовал одинарные кавычки в своем sed, мой шаблон был бы '$ MODNAME', верно? (а не фактическое значение $ MODNAME, которое в данном случае является `alpha ')
Другая проблема, с которой я столкнулся, с awk внутри эха:
USAGE=`echo -ne "\
Usage : ./\`basename $0\` [-hnvV]\n\
\`ls -l ${MODPATH}/reference/ | awk -F " " '$8 ~ /\w+/{print "> ",$8}'\`"`
Я потратил некоторое время на его отладку. Я пришел к выводу, что обратные метки были исключены, так что интерпретатор не «разделяет» команду (и останавливается прямо перед «basename»). В команде awk '$ 8' успешно интерпретируется awk, то есть не оболочкой. Что если я захочу использовать переменную оболочки? Буду ли я писать awk -F "\" $ MY_SHELL_VAR \ ""? Поскольку $ MY_SHELL_VAR как есть, будет интерпретироваться awk, не так ли?
Не стесняйтесь добавлять любую информацию о цитировании или кавычках!
Спасибо! :)