Om du har använt Bash-skalet en anständig tid, vet du förmodligen hur du skriver ut strängar i Linux-terminalen med ekokommandot. Kommandot printf gör det dock mycket lättare att skriva ut text med specifik formatering.

Idag lär vi oss hur man använder printf-funktionen för att förbättra våra Bash-skriptfärdigheter.

Vad är Bash printf-funktionen?

Som namnet antyder är printf en funktion som skriver ut formaterade textsträngar. Det betyder att du kan skriva en strängstruktur (formatet) och senare fylla i den med värden (argumenten).

Om du känner till programmeringsspråken C / C ++ kanske du redan vet hur printf fungerar. Printf i Bash-skalet är mycket lika, men det har några små skillnader.

Läs mer: Bästa webbplatserna att komma igång med C ++ programmering

Hur man använder printf i Bash Shell

Den grundläggande syntaxen för printf är:

printf-format [argument]

Printf kommer att skriva ut formatera sträng vid implementering flyr (\) och direktiv (%) genom användning av specificerade argument. Notera utdata från följande kommando:

instagram viewer
$ printf "Hej,% s" -världen
Hej världen

Printf tog värld argument och ersatte % s tecken i den angivna strängen med den.

Du kanske märker att efter utmatningen skapar Bash inte en ny rad åt dig. Till skillnad från ekokommandot antar printf inte att du vill ha en ny rad efter att utskriften har skrivits ut. Således måste du använda den nya linjetecknet \ n i varje fall.

Om du vill skriva ut en sträng och sedan flytta till en ny rad skriver du printf "Hej, värld \ n".

Hej världen

Det är viktigt att komma ihåg att printf kommer att försöka återanvända formatet för alla dina argument. Du kan använda detta till din fördel, men om du inte är försiktig kan du få resultat som detta:

$ printf "Mitt namn är% s" Jordan Gloor
Jag heter Jordan Jag heter Gloor

Du bör också vara medveten om att om ett argument saknas, tolkar printf alla direktiv som 0 (för ett nummer) och null (för en sträng).

$ printf "Hej,% s."
Hej, .

Nu när du vet hur Bash-skript med printf i Linux fungerar är du redo att börja använda den i dina kommandon.

Linux Bash printf Exempel

Printf har många formatspecifikationer som du kan använda i dina skript. Men idag kommer vi bara att täcka några vanliga för funktionen.

1. Formatera utdata med en sträng

För att formatera utdata med textsträngar använder du % s direktiv.

$ printf "% s är en av de största online% s." MUO "teknikpublikationer"
MUO är en av de största online-teknikpublikationerna.

2. Formatera utmatningssträng med decimaler

För att formatera en sträng med ett heltal kan du använda % d direktiv för en signerad decimal.

$ printf "MUO grundades% d." 2007
MUO grundades 2007.

Observera att om du vill använda ett osignerat decimal i utgången måste du använda % u direktivet istället.

Relaterad: Vad betyder "Bash" i Linux?

3. Matematiska funktioner för utdata med hjälp av printf

Det är enkelt att formatera matematiska funktioner med kommandot printf. Placera bara ditt uttryck i dubbla parenteser som du normalt gör i Bash och ange uttrycket i argumentlistan.

$ printf "1 + 1 är% d" $ ((1 + 1))
1 + 1 är 2

4. Formatera hexadecimala siffror

Om du behöver formatera ett hexadecimalt tal, använd % x för gemener och % X för versaler.

$ printf% X 1000
3E8C

5. Skriv ut datum och tid

För att skriva ut aktuellt datum och tid kan du kombinera printf med datum kommandot och skicka följande direktiv.

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

Du kan se formatspecifikationerna för månad, dag, år, timme, minut och sekund i ovannämnda utdata.

6. Formatera strängar med Unicode-tecken

För att skriva ut Unicode-tecken med printf, använd \ u fly för 16-bitars Unicode och \ U för 32-bitars Unicode.

Du kan till exempel skriva ut upphovsrätt symbol med följande kommando:

$ printf "\ u00A9"
©

7. Lägg till avstånd till utgången

Du kan formatera dina strängar med avstånd genom att definiera ett minimalt antal tecken som skrivs ut före direktivet. Oanvända tecken kommer att fyllas i med blanksteg.

Till exempel att skriva printf "% s:% 5d \ n" "Värde 1" 25 "Värde 2" 120 kommer att mata ut:

Värde 1: 25
Värde 2: 120

De % 5d formatspecifikator i utgången anger att den formaterade strängen kommer att innehålla minst fem tecken. Eftersom 25 bara har två siffror läggs mellanslag till de återstående tecknen.

Om du anger ett negativt tal som bredd, kommer direktivet att vara vänsterjusterat istället för högerjusterat.

$ printf "% -10s:% d" "Circles" 25 "Boxes" 120
Cirklar: 25 rutor: 120

Om du vill göra bredden variabel kan du skicka en asterisk istället för ett nummer och printf kommer att använda nästa nummer som det hittar i argumentlistan.

$ printf "% * s:% d" -10 "Cirklar" 25-10 "Lådor" 120
Cirklar: 25 rutor: 120

Relaterad: Allt du behöver veta om Bash For Loops i Linux

Lär dig Linux printf Command

Med printf-kommandot i Bash-skriptverktygsbältet är du redo att börja skriva ut komplexa och varierande strängar i din terminal. När du utvecklar dina Bash-skript är det viktigt att du arbetar i en så produktiv miljö som möjligt. Detta kommer inte bara att förbättra dina kommandoradsfärdigheter utan kommer också att förbättra ditt arbetsflöde i allmänhet.

E-post
10 bästa Linux Distros för utvecklare

Är du redo att börja utveckla ett operativsystem med öppen källkod? Här är de bästa Linux-distributionerna för programmering.

Läs Nästa

Relaterade ämnen
  • Linux
  • Linux Bash Shell
  • Linux-kommandon
Om författaren
Jordan Gloor (32 artiklar publicerade)

Jordanien är en handledare och journalist som brinner för att göra Linux tillgängligt och stressfritt för alla. Han har en BA på engelska och en sak för varmt te. Under de varma årstiderna gillar han att cykla i Ozarks kullar där han bor.

Mer från Jordan Gloor

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.