Допустимые символы в теге документа here

Используйте

sudo apt full-upgrade

или sudo apt-get dist-upgrade

1
19.11.2016, 20:19
2 ответа

Согласно спецификации POSIX, раздел о heredocs определяет "тег" heredoc просто как слово. Это наводит меня на мысль, что все, что оболочка определяет как допустимое слово, является приемлемым.

Что касается максимальной длины слова, я бы сказал, что это зависит от оболочки, в которой вы будете запускать скрипт, хотя я очень сомневаюсь, что вы попадете в жесткое ограничение по длине без использования абсурдно длинной строки.

0
28.01.2020, 01:07

В качестве разделителя можно использовать любую непустую последовательность символов, кроме новой строки. POSIX не содержит никаких ограничений. Вы можете указать новую строку в разделителе, но тогда она никогда не будет найдена. Многие оболочки поддерживают пустые разделители, но ATT ksh - нет. Фактически, большинство оболочек принимают произвольные последовательности байтов, отличные от нуля и новой строки, но я бы не рекомендовал использовать недопустимые последовательности байтов. Я также рекомендую не использовать символы возврата каретки, поскольку они могут быть перекодированы, когда сценарий редактируется или переносится на другой компьютер. Завершающие пробелы также могут быть случайно удалены во время редактирования. Безопаснее придерживаться печатаемого кода ASCII.

Конечно, если разделитель включает символ, который имеет особое значение в синтаксисе оболочки, вам нужно будет заключить его в кавычки после оператора << , и тогда вы можете использовать здесь только литерал - документ, а не здесь-документ с заменой переменных и команд.

0
28.01.2020, 01:07

Теги

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