Если вы использовали оболочку Bash в течение приличного времени, вы, вероятно, знаете, как печатать строки в терминале Linux с помощью команды echo. Однако команда printf значительно упрощает печать текста с определенным форматированием.

Сегодня мы узнаем, как использовать функцию printf, чтобы улучшить наши навыки написания сценариев Bash.

Что такое функция printf в Bash?

Как следует из названия, printf - это функция, которая печатает отформатированные строки текста. Это означает, что вы можете написать строковую структуру (формат), а затем заполнить ее значениями (аргументами).

Если вы знакомы с языками программирования C / C ++, возможно, вы уже знаете, как работает printf. Printf в оболочке Bash очень похож, но имеет несколько небольших отличий.

Узнать больше: Лучшие сайты для начала программирования на C ++

Как использовать printf в оболочке Bash

Базовый синтаксис printf:

формат printf [аргумент]

Printf распечатает формат строка при реализации убегает (\) и директивы (%) за счет использования указанных аргументы. Обратите внимание на вывод следующей команды:

$ printf "Привет,% s" мир
Привет мир

Printf взял Мир аргумент и заменил % s символ в указанной строке с ним.

Вы можете заметить, что после вывода Bash не создает для вас новую строку. В отличие от команды echo, printf не предполагает, что вы хотите новую строку после печати вывода. Таким образом, вам нужно использовать символ новой строки \ п в каждом случае.

Чтобы напечатать строку, а затем перейти к новой строке, введите printf "Привет, мир \ n".

Привет мир

Важно помнить, что printf попытается повторно использовать формат для всех ваших аргументов. Вы можете использовать это в своих интересах, но если вы не будете осторожны, вы можете получить такие результаты:

$ printf "Меня зовут% s" Джордан Глор
Меня зовут Джордан, меня зовут Глор

Вы также должны знать, что если аргумент отсутствует, printf интерпретирует любые директивы как 0 (для числа) и нулевой (для строки).

$ printf "Привет,% s."
Привет, .

Теперь, когда вы знаете, как работает сценарий Bash с printf в Linux, вы готовы начать использовать его в своих командах.

Примеры printf в Linux Bash

Printf имеет множество спецификаторов формата, которые вы можете использовать в своих скриптах. Но сегодня мы рассмотрим только некоторые общие для функции.

1. Форматировать вывод строкой

Чтобы отформатировать вывод строками текста, используйте % s директива.

$ printf "% s - один из крупнейших в сети% s." MUO «Технологические публикации»
MUO - одно из крупнейших сетевых технологических изданий.

2. Форматировать строку вывода с помощью десятичных знаков

Чтобы отформатировать строку с целым числом, вы можете использовать % d директива для десятичной дроби со знаком.

$ printf "Компания MUO была основана в% d." 2007 г.
MUO была основана в 2007 году.

Обратите внимание: если вы хотите использовать в выводе десятичное число без знака, вам придется использовать % u вместо этого директива.

Связанный: Что означает "Bash" в Linux?

3. Вывод математических функций с помощью printf

Форматировать математические функции с помощью команды printf очень просто. Просто поместите свое выражение в двойные круглые скобки, как обычно в Bash, и укажите выражение в списке аргументов.

$ printf "1 + 1 равно% d" $ ((1 + 1))
1 + 1 равно 2

4. Форматировать шестнадцатеричные числа

Если вам нужно отформатировать шестнадцатеричное число, используйте %Икс для строчных и %ИКС для прописных букв.

$ printf% X 1000
3E8C

5. Печать даты и времени

Чтобы распечатать текущую дату и время, вы можете объединить printf с датировать command и передайте следующие директивы.

$ printf "% (% m-% d-% Y% H:% M:% S) T" $ (дата +% s)
03-26-2021 15:27:57

Вы можете увидеть спецификаторы формата для месяца, дня, года, часа, минуты и секунды в вышеупомянутом выводе.

6. Форматировать строки с помощью символов Юникода

Чтобы напечатать символы Unicode с помощью printf, используйте \ u escape для 16-битного Unicode и \ U для 32-битного Unicode.

Например, вы можете распечатать авторское право символ с помощью следующей команды:

$ printf "\ u00A9"
©

7. Добавить интервал к выводу

Вы можете форматировать свои строки с помощью пробелов, определив перед спецификатором директивы минимальное количество печатаемых символов. Неиспользуемые символы будут заполнены пробелами.

Например, набрав printf "% s:% 5d \ n" "Значение 1" 25 "Значение 2" 120 выведет:

Значение 1:25
Значение 2: 120

В % 5d Спецификатор формата в выводе означает, что отформатированная строка будет содержать не менее пяти символов. Поскольку 25 состоит только из двух цифр, к оставшимся символам добавляются пробелы.

Если вы передадите отрицательное число в качестве ширины, директива будет выровнена по левому краю, а не по правому краю.

$ printf "% -10s:% d" "Круги" 25 "Коробки" 120
Кругов: 25 Ящиков: 120

Если вы хотите сделать ширину переменной, вы можете передать звездочку вместо числа, и printf будет использовать следующее число, которое найдет в списке аргументов.

$ printf "% * s:% d" -10 "Круги" 25 -10 "Ящики" 120
Кругов: 25 Ящиков: 120

Связанный: Все, что вам нужно знать о Bash For Loops в Linux

Изучение команды printf в Linux

С помощью команды printf в поясе служебной программы сценариев Bash вы готовы приступить к печати сложных и разнообразных строк в своем терминале. При разработке сценариев Bash важно убедиться, что вы работаете в максимально производительной среде. Это не только улучшит ваши навыки работы с командной строкой, но и улучшит ваш рабочий процесс в целом.

Эл. адрес
10 лучших дистрибутивов Linux для разработчиков

Готовы начать разработку в операционной системе с открытым исходным кодом? Вот лучшие дистрибутивы Linux для программирования.

Читать далее

Похожие темы
  • Linux
  • Оболочка Linux Bash
  • Команды Linux
Об авторе
Джордан Глор (Опубликовано 32 статей)

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

Ещё от Jordan Gloor

Подпишитесь на нашу рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.