6.5 Использование операторов printf для декоративной печати
6.5.1 Введение в описание оператора printf
Оператор printf имеет следующую форму:
printf формат, аргумент1, аргумент2, ...
Весь список аргументов можно заключать в скобки. Скобки необходимы, если в в выражениях какого-нибудь аргумента использован знак `?' оператора отношения, так как иначе он может быть спутан с перенаправлением (см. раздел 6.6 [Перенаправление выхода print и printf], стр. 70).
Разница между printf и print состоит в аргументе format. Он представляет выражение, значением которого является цепочка; она определяет форму вывода каждого из остальных аргументов и называется форматной строкой. Эта цепочка очень похожа на форматную строку функции printf в библиотеке ANSI C. Большая часть форматного текста без изменений поступает на вывод. В нем содержатся также части, специфицирующие формат, по одной на каждый аргумент. Каждый спецификатор формата предписывает поместить вывод следующего аргумента из списка аргументов в соответствующем ему месте форматного текста. Оператор printf не завершает автоматически вывод переходом к новой строке. Он выдает только то, что указано в форматной строке. Так что если вы хотите перейти к новой строке, вы должны указать это в форматной строке. Переменные разделителей вывода OFS и ORS не действуют на операторы printf.
Например:
BEGIN -
ORS = ""nOUCH!"n"; OFS = "!" msg = "Don't Panic!";
printf "%s"n", msg ""
Эта программа все так же печатает знакомый совет
`Don't Panic!'.