История изменений
Исправление Zubok, (текущая версия) :
Там, кажется, какой-то древний ksh88. В дебиане небось поновее ksh93.
Ага, 93-й.
Без разницы. Те же двойные на выходе.
Хм, странная ситуация. Получается, что он меняет single quotation marks даже при отключенном экспанде Heredoc:
https://www.ibm.com/docs/en/aix/7.2?topic=ks-input-output-redirection-in-korn...
[n]<<word
here document
delimiter
If any character in word is quoted, the delimiter is formed by removing the quote on word. The here document lines will not be expanded. Otherwise, the delimiter is the word itself. If no characters in word are quoted, all lines of the here document will be expanded for parameter expansion, command substitution, and arithmetic expansion.
Можно было бы предположить, что он тупо заменяет одинарные кавычки двойными, но это не так, так как если экранировать их, как это написано в документации, то уже не заменяет, но backslash оставляет.
Вообще, меня смущает, что в документации на ksh (AIX) говорится об экранировании одинарных кавычек, а не backquote (в Debian на ksh говорится о backquote, как и везде). Везде, где я посмотрел, речь идет об экранировании backquote, так как понятно, что это расценивается как command substitution, если экспанд Heredoc разрешен. Такое ощущение, что у них какая-то путаница где-то или где-то закралась какая-то особая трактовка одинарных кавычек. Или тупо какой-то баг. Но, блин, в документации написано, что это надо экранировать почему-то. Написано явно и приговорено словами. Зачем это экранировать?
Исходная версия Zubok, :
Там, кажется, какой-то древний ksh88. В дебиане небось поновее ksh93.
Ага, 93-й.
Без разницы. Те же двойные на выходе.
Хм, странная ситуация. Получается, что он меняет single quotation marks даже при отключенном экспанде Heredoc:
https://www.ibm.com/docs/en/aix/7.2?topic=ks-input-output-redirection-in-korn...
If any character in word is quoted, the delimiter is formed by removing the quote on word. The here document lines will not be expanded. Otherwise, the delimiter is the word itself. If no characters in word are quoted, all lines of the here document will be expanded for parameter expansion, command substitution, and arithmetic expansion.
Можно было бы предположить, что он тупо заменяет одинарные кавычки двойными, но это не так, так как если экранировать их, как это написано в документации, то уже не заменяет, но backslash оставляет.
Вообще, меня смущает, что в документации на ksh (AIX) говорится об экранировании одинарных кавычек, а не backquote (в Debian на ksh говорится о backquote, как и везде). Везде, где я посмотрел, речь идет об экранировании backquote, так как понятно, что это расценивается как command substitution, если экспанд Heredoc разрешен. Такое ощущение, что у них какая-то путаница где-то или где-то закралась какая-то особая трактовка одинарных кавычек. Или тупо какой-то баг. Но, блин, в документации написано, что это надо экранировать почему-то. Написано явно и приговорено словами. Зачем это экранировать?