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

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

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

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

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

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

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

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

Основной синтаксис printf:

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

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

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

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

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

Чтобы напечатать строку и перейти к новой строке, введите printf «Hello, world n» .

  Привет, мир  

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

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

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

  $ 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. Форматирование шестнадцатеричных чисел

Если вам нужно отформатировать шестнадцатеричное число, используйте % x для нижнего регистра и % X для верхнего регистра.

  $ printf% X 1000 
3E8C

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

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

  $ printf "% (% m-% d-% Y% H:% M:% S) T" $ (date +% s) 
26.03.2021 15:27:57

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

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

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

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

  $ printf " u00A9" 
©

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

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

Например, при вводе printf «% s:% 5d n» «Value 1» 25 «Value 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 важно убедиться, что вы работаете в максимально производительной среде. Это не только улучшит ваши навыки работы с командной строкой, но и улучшит ваш рабочий процесс в целом.

Оцените статью
oilgasindustry.ru
Добавить комментарий