Ако сте използвали черупката 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
5. Отпечатайте дата и час
За да отпечатате текущата дата и час, можете да комбинирате 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
Джордан е писател на персонал в MUO, който се стреми да направи Linux достъпен и без стрес за всички. Той също така пише ръководства за поверителност и производителност.
Още от Джордан ГлорАбонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!
Щракнете тук, за да се абонирате