Используя printf для создания заголовка

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

#-------------------------------------------------------
#TEXT1 #TEXT2
#--------------------------------------------------------

Я был бы очень признателен, если бы кто-нибудь мог дать мне несколько советов о том, как это сделать.

3 ответа

Здесь один из способов использования длинных строк с определенным количеством символов.

dashes=$(printf "%0.s-" {1..55})
printf "#$dashes\n#TEXT1%32s#TEXT2\n#$dashes-\n" " "

См. Bash-Hackers Wiki для получения подробной информации о команде printf в bash.

Как это работает

  • dashes=$(printf "%0.s-" {1..55}) - используют расширение скобки и подстановки команд, чтобы создать переменную строку из 55 следующих друг за другом - символов.

  • \n - печатает символ новой строки

  • %32s - печатает 32 символа " "

Обновить

Чтобы напечатать три вкладки между #TEXT1 и #TEXT2:

dashes=$(printf "%0.s-" {1..55})
printf "#$dashes\n#TEXT1\t\t\t#TEXT2\n#$dashes-\n" " "
  • \t обозначает символ табуляции.


Просто напечатайте строки с символами новой строки в конце.

printf '#-------------------------------------------------------\n'
printf '#TEXT1 #TEXT2\n'
printf '#--------------------------------------------------------\n'

Вы также можете использовать echo, поскольку в строках нет форматирования. Тогда вам не нужно \n в конце.


Вы можете попробовать это,

$ printf "#-------------------------------------------------------\n#TEXT1 #TEXT2\n#--------------------------------------------------------\n";
#-------------------------------------------------------
#TEXT1 #TEXT2
#--------------------------------------------------------

licensed under cc by-sa 3.0 with attribution.