Я заметил тенденцию в оболочках Unix и других языках, таких как LaTeX, HTML, устранять симметричный синтаксис включения.
Под симметричным синтаксисом включения я подразумеваю, что открывающий и закрывающий знаки одинаковы, например, одинарная кавычка оболочки ', двойная кавычка и обратная кавычка `, LaTeX $.
Рекомендуется заменить симметричный включающий синтаксис на асимметричный включающий синтаксис, например, писать в оболочке $(ls), а не `ls`, в LaTeX \(2+2\), а не $2+2$.
Причинами этого изменения являются простота интерпретации для человека-читателя или компьютерной программы (парсера) и проблема вложенности.
Обходной путь для вложенных кавычек обычно заключается в использовании двойных кавычек на одном уровне и одинарных кавычек на другом, но это не работает с тремя уровнями, например echo "'"a"'"
, а также одинарные и двойные кавычки различаются в отношении подстановки параметров, поэтому вы можете' t использовать подстановку параметров на обоих уровнях.
Есть ли способ заменить одинарные и двойные кавычки оболочки Unix асимметричными конструкциями, допускающими вложение?
Я нашел $'' как асимметричную альтернативу одинарным кавычкам, но что за двойные кавычки?
($ не работает для этого в zsh.)
Is there a way...
вы хотите получить ответ вроде: написать свою собственную оболочку, которая делает это?$"" does not work for this in zsh
Нет,$""
не для этого, а для перевода сообщений. - person KamilCuk   schedule 23.04.2021