Ако сте използвали черупката на Bash от прилично време, вероятно знаете как да отпечатвате низове в терминала на Linux с помощта на командата echo. Командата printf обаче улеснява отпечатването на текст със специфично форматиране.

Днес ще научим как да използваме функцията printf, за да подобрим нашите умения за скриптове на Bash.

Какво представлява функцията Bash printf?

Както подсказва името, printf е функция, която отпечатва форматирани низове от текст. Това означава, че можете да напишете низова структура (формата) и по-късно да я попълните със стойности (аргументите).

Ако сте запознати с езиците за програмиране C / C ++, може би вече знаете как работи printf. Printf в черупката на Bash е много подобен, но има няколко малки разлики.

Научете повече: Най-добрите сайтове за започване на програмиране на C ++

Как да използвам printf в Bash Shell

Основният синтаксис за printf е:

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

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

instagram viewer
$ printf "Здравей,% s" свят
Здравей свят

Printf взе света аргумент и замени символ в посочения низ с него.

Може да забележите, че след изхода, Bash не създава нов ред за вас. За разлика от командата echo, printf няма да предположи, че искате нов ред след отпечатването на изхода. По този начин ще трябва да използвате символа от новия ред  във всеки случай.

За да отпечатате низ и след това да преминете към нов ред, въведете printf "Здравей, свят \ n".

Здравей свят

Важно е да имате предвид, че printf ще се опита да използва повторно формата за всички ваши аргументи. Можете да използвате това във ваша полза, но ако не сте внимателни, можете да получите резултати като този:

$ printf "Казвам се% s" Jordan Gloor
Казвам се Йордания Казвам се Gloor

Трябва също да знаете, че ако липсва аргумент, printf ще интерпретира всички директиви като 0 (за номер) и нула (за низ).

$ printf "Здравейте,% s."
Здравейте, .

Сега, след като знаете как работи Bash скриптирането с printf в Linux, сте готови да започнете да го използвате във вашите команди.

Linux Bash printf Примери

Printf включва много спецификатори на формат, които можете да използвате във вашите скриптове. Но днес ще разгледаме само някои общи за функцията.

1. Форматиране на изход с низ

За да форматирате изхода с низове текст, използвайте директива.

$ printf "% s е един от най-големите онлайн% s." MUO "технологични публикации"
MUO е една от най-големите онлайн технологични публикации.

2. Форматирайте изходния низ с десетични знаци

За да форматирате низ с цяло число, можете да използвате директива за подписан десетичен знак.

$ 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 с дата команда и предайте следните директиви.

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

Можете да видите спецификаторите на формата за месец, ден, година, час, минута и секунда в гореспоменатия изход.

6. Форматирайте низове с Unicode символи

За да отпечатате Unicode символи с printf, използвайте \ u escape за 16-битов Unicode и \ U за 32-битов Unicode.

Например можете да отпечатате Авторско право символ със следната команда:

$ printf "\ u00A9"
©

7. Добавете интервал към изхода

Можете да форматирате низовете си с интервали, като дефинирате преди спецификатора на директивата минимален брой отпечатани знаци. Неизползваните символи ще бъдат попълнени с интервали.

Например, пишете printf "% s:% 5d \ n" "Стойност 1" 25 "Стойност 2" 120 ще изведе:

Стойност 1: 25
Стойност 2: 120

The %5 д спецификатор на формат в изхода означава, че форматираният низ ще съдържа минимум пет знака. Тъй като 25 има само две цифри, интервалите се добавят към останалите знаци.

Ако предадете отрицателно число като ширина, директивата ще бъде подравнена вляво, вместо вдясно.

$ printf "% -10s:% d" "Кръгове" 25 "Кутии" 120
Кръгове: 25 кутии: 120

Ако искате да направите променливата на ширината, можете да подадете звездичка вместо число и printf ще използва следващото число, което намери в списъка с аргументи.

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

Свързани: Всичко, което трябва да знаете за Bash For Loops в Linux

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

С командата printf във вашия колан за помощни програми за скриптове Bash сте готови да започнете да печатате сложни и различни низове във вашия терминал. Докато разработвате своите Bash скриптове, е важно да сте сигурни, че работите във възможно най-продуктивната среда. Това не само ще подобри уменията ви в командния ред, но и ще подобри работния ви процес като цяло.

електронна поща
10 най-добри дистрибуции на Linux за разработчици

Готови ли сте да започнете разработка на операционна система с отворен код? Ето най-добрите дистрибуции на Linux за програмиране.

Прочетете Напред

Свързани теми
  • Linux
  • Linux Bash Shell
  • Linux команди
За автора
Джордан Глор (32 статии публикувани)

Джордан е преподавател и журналист, който е страстен да направи Linux достъпен и без стрес за всички. Той има бакалавърска степен по английски и нещо за горещ чай. През топлите сезони той обича да кара колоездене по хълмовете на Озарките, където живее.

Още от Джордан Глор

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.