Bash printf Функция: 7 примера за Linux

Bash printf Функция: 7 примера за Linux

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





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





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

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





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

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



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

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

printf format [argument]

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





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

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

Може да забележите, че след изхода 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, сте готови да започнете да го използвате във вашите команди.

Linux Bash printf Примери

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

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

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

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

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

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

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

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

как да играете покемон червен на android

Свързани: Какво означава „Bash“ в Linux?

3. Изходни математически функции с помощта на printf

Форматирането на математически функции с командата printf е лесно. Просто поставете израза си в двойни скоби, както обикновено правите в Bash, и посочете израза в списъка с аргументи.

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

4. Форматирайте шестнадесетични числа

Ако трябва да форматирате шестнадесетично число, използвайте % х за малки букви и % Х за главни букви.

$ printf %X 1000
3E8C

За да отпечатате текущата дата и час, можете да комбинирате printf с дата командват и предават следните директиви.

$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%s)
03-26-2021 15:27:57

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

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

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

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

$ printf 'u00A9'
©

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

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

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

Value 1: 25
Value 2: 120

The %5 д спецификатор на формат в изхода означава, че форматираният низ ще съдържа минимум пет знака. Тъй като 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

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

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

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

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

как можете да видите кой ви следва във фейсбук
Прочетете Напред Свързани теми
  • Linux
  • Linux Bash Shell
  • Команди на Linux
За автора Джордан Глор(51 статии са публикувани)

Джордан е писател на персонал в MUO, който се стреми да направи Linux достъпен и без стрес за всички. Той също така пише ръководства за поверителност и производителност.

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

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

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

Щракнете тук, за да се абонирате
Категория Linux