BASH-programmering

Bash Printf-kommando

Bash Printf-kommando
Arbetar vi med bash-skript använder vi oftast kommandot “echo” för att skriva ut alla utdata, vilket är bekvämt och enkelt att använda och uppfyller kravet oftast. Men enkelhet kommer med begränsning; echo-kommandot har sin egen begränsning när det gäller att formatera utdata, i så fall “tryckf”Kommandot spelar sin roll.

tryckf”Kommando i bash scripting fungerar på samma sätt”printf ()”Fungerar på C-språket. Detta inlägg kommer att fokusera påtryckf”-Kommandot, dess syntax och exempel som vidareutvecklar användningen av detta kommando. Låt oss kolla syntaxen för “tryckf”Kommando:

tryckf

: Det är valfritt att tilldela utdata till en variabel.
: Det är en sträng som kan innehålla olika formatspecifikationer som "% s", "% b", "% d", "% f" och backslash escape
: Argumenten kan vara valfritt värde eller variabel

Så här använder du printf-kommandot i bash-skript med Vim-editor:

Vi använder Vim-editor för den här guiden på grund av dess rika funktionalitet och användarvänlighet. Få Vim på din enhet med:

$ sudo apt installera vim

Starta Vim Editor:

$ vim

Låt oss skriva ett enkelt program för att skriva ut en sträng med "printf":

#! / bin / bash
printf “Hej Linuxhint”

För att spara filen, tryck på “Esc”-Knappen för att växla läge och sedan skriva “: W exempel.sh ”och sedan“Enter ”. Öppna nu ett nytt terminalfönster och skriv:

$ bash exempel.sh

Ovanstående kommando kommer att utföra skriptet och skriva ut "hej linuxhint" -text som visas nedan:

Låt oss nu inkludera några formatspecifikationer:

#! / bin / bash
printf “% s \ n” “Hello Linuxhint”

I exemplet ovan säger "% s" att motsvarande argument ska behandlas som sträng och "\ n" för den nya raden. På samma sätt, om vi använder "% d", kommer argumentet att behandlas som ett heltal:

#! / bin / bash
printf “% s \ n” “Hello Linuxhint” “Lär dig mer om” “Linux”

Alla tre argumenten kommer att behandlas som en sträng och skrivas ut på en ny rad, vilket visas i följande utdata:

Ett annat exempel nämns nedan för att förstå användningen av kommandot "printf":

#! / bin / bash
eko “Ange ditt namn”
läs namn
eko “Ange din ålder”
läs ålder
printf "Ditt namn:% s \ nDin ålder:% s \ n" "$ name" "$ age"

"Ditt namn:% s \ n Din ålder:% s \ n" är format medan "$ name" ”$ Age” är argumenten. Medan “% s” pekar på argumenten.

Så här använder du konverteringsspecifikatorer med printf-kommando:

Konverteringsspecifikationerna är tecken som används med tecknet “%” för att ange hur argumenten ska hanteras. Låt oss kolla listan med några vanliga specifikationer:

Specifier Dbeskrivning
%% Skriver ut "%" -symbolen
% c Tar argument som en enda karaktär
% e och% E Ta argument i flytande nummer och skriv ut i exponentiell notation, % e för gemener och % E för versaler
% g och% G Ta argument i flytande nummer och skriv ut i normal eller exponentiell notation
% f Tar argument som flytande siffror
% d Tar argument som signerade heltal
% u Tar argumentet som osignerade heltal
%o Tar argumentet som ett osignerat oktalt tal
% x och% X Tar argument som osignerade hexadecimala heltal

Låt oss vidare utarbeta ovanstående specifikationer med ett exempel i bash:

#! / bin / bash
eko “Ange ett nummer som ska konverteras”
läs nummer
printf "Decimal:% d \ nOktal:% o \ nHex:% X \ n" "$ nummer" "$ nummer" "$ nummer"

Så här använder du flagg-, bredd- och precisionsdirektiv med printf-kommando:

Flaggdirektiv kommer med valfri användning med kommandot “printf”. De vanligaste flaggdirektiven är

  • “-” Vänster motiverar utmatningen
  • "+" Lägger till "+" -tecknet med heltal
  • "0" Lägger till "0" med ett nummer istället för mellanslag

Bredddirektiven lägger till utrymme med den utgång som vanligtvis används efter flaggan. Låt oss förstå det med ett exempel:

#! / bin / bash
eko “Ange ditt namn”
läs namn
eko “Ange din ålder”
läs ålder
printf “Ditt namn och ålder är:% 5s% 5d \ n” “$ name” “age”

"% 30s" betyder att utrymmet är 30 tecken långt och för att justera utmatningsformuläret till vänster, använd "-" tecknet "% -30s".

Precisionsdirektivet består av punkten ”.”Efter ett positivt heltal:

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

Resultatet skulle vara:

Om talet är ett heltal kommer precisionsdirektivet att lägga till "0" före numret. Om siffran är flytande punkt, kommer precisionsdirektivet att ange antalet positiva siffror efter decimal. För sträng anger den antalet tecken som ska visas:

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

Backslash Escape-parametrar:

Backslash escape-parametrar, även kallade escape-sekvenser, används med en backslash för att formatera strängen med kommandot “printf”. Dessa sekvenser representerar inte sig själva utan tolkas i vissa andra tecken. Några vanliga escape-sekvenser är:

Karaktär Beskrivning
\\ Skriver ut backslash-karaktär
\ b Skriver ut bakstegstecken
\ n Skriver ut utdata i en ny rad
\ r Skriver ut en vagnretur (markör i början av raden)
\ t Ger flikutrymme från höger
\ v Ger flikutrymme

Slutsats:

När det gäller att skriva ut något i bash-skript används "echo" -kommandot oftast eftersom det är lätt att använda och komma ihåg. Men "echo" -kommandot har sin begränsning. Därför, för att korrekt formatera utdata, “Printf” kommando kan användas. De “Printf” kommandot har många alternativ för att formatera strängutdata och till och med grundläggande siffrors omvandlingar och formatering. Den här guiden förstår grundligt kommandot ”printf” i bash-skript med exempel.

5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...