Програмиране на BASH

Команда Bash Printf

Команда Bash Printf
Работейки с bash скриптове, ние най-често използваме командата “echo”, за да отпечатаме всеки изход, който е удобен и лесен за използване и изпълнява изискванията през повечето време. Но простотата идва с ограничение; echo има собствено ограничение, когато става въпрос за форматиране на изхода, в този случай „printf”Командата играе своята роля.

printf"Команда в bash скриптове работи по същия начин"printf ()”Работи на C език. Тази публикация ще се фокусира върху „printf”, Нейния синтаксис и примери, които доразвиват използването на тази команда. Нека проверим синтаксиса на „printf”Команда:

printf

: Не е задължително да се присвоява изход на променлива.
: Това е низ, който може да съдържа спецификатори на различни формати като „% s“, „% b“, „% d“, „% f“ и обратна наклонена черта
: Аргументите могат да бъдат всяка стойност или променлива

Как да използвам командата printf в bash скриптове с помощта на Vim редактор:

Използваме Vim editor за това ръководство поради богатата му функционалност и лекота на използване. Вземете Vim на вашето устройство, като използвате:

$ sudo apt install vim

Стартирайте редактор на vim:

$ vim

Нека напишем проста програма за отпечатване на низ, използвайки “printf”:

#! / bin / bash
printf “Здравейте Linuxhint”

За да запазите файла, натиснете „Esc”, За да превключите режима и след това въведете “: W пример.ш "и след това"Ентеr ”. Сега отворете нов терминален прозорец и напишете:

$ bash пример.ш

Горната команда ще изпълни скрипта и ще отпечата текста „hello linuxhint”, както е показано по-долу:

Сега, нека включим някои спецификатори на формат:

#! / bin / bash
printf “% s \ n” “Здравейте Linuxhint”

В горния пример „% s“ казва, че съответният аргумент трябва да се третира като низ и „\ n“ за новия ред. По същия начин, ако използваме „% d“, тогава аргументът ще се третира като цяло число:

#! / bin / bash
printf “% s \ n” “Здравейте Linuxhint” “Научете за” “Linux”

И трите аргумента ще бъдат третирани като низ и ще бъдат отпечатани в нов ред, както е показано в следващия изход:

Друг пример е споменат по-долу, за да се разбере използването на командата “printf”:

#! / bin / bash
ехо „Въведете името си“
прочетете име
ехо „Въведете възрастта си“
четена възраст
printf “Вашето име:% s \ nВашата възраст:% s \ n” “$ name” “$ age”

„Вашето име:% s \ n Вашата възраст:% s \ n“ е формат, докато „$ name“ „$ Age“ са аргументите. Докато „% s“ посочва аргументите.

Как да използвам спецификаторите на преобразуване с командата printf:

Спецификаторите на преобразуване са символи, използвани със знака „%“, за да посочат как да се третират аргументите. Нека проверим списъка с някои често използвани спецификатори:

Спецификатор дескрипция
%% Отпечатва символ „%“
%° С Взема аргументи като един знак
% e и% E Вземете аргумент в число с плаваща запетая и отпечатва в експоненциална нотация, % д за малки букви и % E за главна буква
% g и% G Вземете аргумент в число с плаваща запетая и отпечатвайте в нормална или експоненциална нотация
% f Приема аргумента като плаващи числа
Взема аргументи като подписани цели числа
% u Взема аргумент като неподписани цели числа
% o Приема аргумент като неописано осмично число
% x и% X Взема аргументи като неподписани шестнадесетични цели числа

Нека допълнително да разработим горните спецификатори с пример в bash:

#! / bin / bash
ехо „Въведете число за преобразуване“
прочетено число
printf “Десетично:% d \ nОктално:% o \ nHex:% X \ n” “$ number” “$ number” “$ number”

Как да използваме директивите Flag, Width и Precision с командата printf:

Директивите за флаг идват с незадължителна употреба с командата “printf”. Често използваните директиви за флагове са

  • “-” Ляво оправдаване на изхода
  • “+” Добавя знак “+” с цяло число
  • „0“ Добавя „0“ с число вместо интервали

Директивите за ширината добавят пространство с изхода, който обикновено се използва след флага. Нека го разберем с пример:

#! / bin / bash
ехо „Въведете името си“
прочетете име
ехо „Въведете възрастта си“
четена възраст
printf „Вашето име и възраст са:% 5s% 5d \ n“ „$ name“ „възраст“

„% 30s“ означава, че интервалът е с дължина 30 символа и за да подравните изходната форма вляво, използвайте знака „-“ „% -30s“.

Директивата за прецизността се състои от точка „.”Следва се с положително цяло число:

#! / bin / bash
printf “%.2f ”2.56473

Резултатът ще бъде:

Ако числото е цяло число, директивата за точността ще добави „0“ преди числото. Ако числото е тип с плаваща запетая, тогава директивата за точност ще укаже броя на положителните цифри след десетичната запетая. За низ той определя броя на символите, които трябва да бъдат показани:

#! / bin / bash
printf “%.2f \ n ”2.468936
printf “%.3d \ n ”10
printf “%.3s \ n ”“ samlinux ”

Параметри, избягали от обратната наклонена черта:

Параметрите за изтичане на обратната наклонена черта, наричани още изходни последователности, се използват с обратна наклонена черта, за да форматирате низа с командата “printf”. Тези последователности не представляват себе си, а интерпретират в някои други знаци. Някои често използвани изходни последователности са:

Характер Описание
\\ Отпечатва обратна наклонена черта
\ b Отпечатва обратен знак
Отпечатва изход в нов ред
\ r Отпечатва връщане на каретка (курсор в началото на реда)
\T Дава пространство в раздела отдясно
\ v Дава пространство в раздела

Заключение:

Когато става въпрос за отпечатване на нещо в bash скриптове, най-често се използва командата “echo”, защото е лесна за използване и запомняне. Но командата “echo” има своите ограничения. Следователно, за да форматирате правилно изхода, “Printf” може да се използва команда. The “Printf” Командата идва с много опции за форматиране на изходни низове и дори преобразуване и форматиране на основни числа. Това ръководство разбира подробно функционалността на командата “printf” в bash скриптове с примери.

Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...
Урок за Unity3D
Въведение в Unity 3D Unity 3D е мощен двигател за разработка на игри. Това е кръстосана платформа, която ви позволява да създавате игри за мобилни уст...