Если вы использовали оболочку 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 важно убедиться, что вы работаете в максимально производительной среде. Это не только улучшит ваши навыки работы с командной строкой, но и улучшит ваш рабочий процесс в целом.
Готовы начать разработку в операционной системе с открытым исходным кодом? Вот лучшие дистрибутивы Linux для программирования.
Читать далее
- Linux
- Оболочка Linux Bash
- Команды Linux
Джордан - репетитор и журналист, который страстно желает сделать Linux доступным и свободным от стресса для всех. Он имеет степень бакалавра английского языка и любит горячий чай. В теплое время года он любит кататься на велосипеде по холмам Озарк, где он живет.
Подпишитесь на нашу рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.