Функция Bash printf: 7 примеров для Linux

Функция Bash printf: 7 примеров для Linux

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





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





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

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





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

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



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

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

printf format [argument]

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





$ printf 'Hello, %s' world
Hello, world

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

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





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

Hello, world

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

$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

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

$ printf 'Hello, %s.'
Hello, .

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

Примеры printf в Linux Bash

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

1. Форматирование вывода с помощью строки

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

$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.

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

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

$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.

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

объединить несколько листов Excel в один

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

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

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

$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2

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

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

$ printf %X 1000
3E8C

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

$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%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 выведет:

Value 1: 25
Value 2: 120

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

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

$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120

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

$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120

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

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

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

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

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

где находится буфер обмена на телефоне Android
Читать далее Похожие темы
  • Linux
  • Оболочка Linux Bash
  • Команды Linux
Об авторе Джордан Глор(Опубликована 51 статья)

Джордан - штатный писатель в MUO, который страстно желает сделать Linux доступным и свободным от стресса для всех. Он также пишет руководства по конфиденциальности и производительности.

Ещё от Jordan Gloor

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

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

Нажмите здесь, чтобы подписаться
Категория Linux