Оскільки я рекомендував printfу коментарі, я, мабуть, маю навести кілька прикладів його використання (хоча для друку повідомлення про використання я скоріше використовую відповіді Денніса чи Кріса). printfє трохи складнішим у використанні, ніж echo. Перший її аргумент - це рядковий формат, в якому витлумачення (як \n) завжди інтерпретуються; він також може містити директиви щодо формату, починаючи з того %, які контролюють, де і як додаткові аргументи включаються до нього. Ось два різні підходи до його використання для повідомлення про використання:
По-перше, ви можете включити все повідомлення в рядок формату:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Зауважте, що на відміну від цього echo, ви повинні чітко включити фінальний новий рядок. Крім того, якщо повідомлення містить будь-які %символи, вони повинні бути записані як %%. Якщо ви хочете включити адреси bugreport та домашньої сторінки, їх можна додати цілком природно:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
По-друге, ви можете просто використовувати рядок формату, щоб змусити його друкувати кожен додатковий аргумент в окремому рядку:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
За допомогою цієї опції додавання адрес бугрепорту та домашньої сторінки є досить очевидним:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
echo >&2 ...