Bash printf Funktion: 7 exempel för Linux

Bash printf Funktion: 7 exempel för Linux

Om du har använt Bash -skalet under en anständig tid vet du förmodligen hur du skriver ut strängar i Linux -terminalen med hjälp av kommandot echo. Kommandot printf gör det dock mycket enklare att skriva ut text med specifik formatering.





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





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 är bekant med programmeringsspråken C/C ++ kanske du redan vet hur printf fungerar. Printf i Bash -skalet är väldigt lika, men det har några små skillnader.

Läs mer: Bästa sajter för 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 under implementeringen läckage ( ) och direktiv ( % ) genom användning av specificerade argument . Notera utmatningen av följande kommando:





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

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

Du kanske märker att efter utgången skapar Bash inte en ny rad åt dig. Till skillnad från echo -kommandot antar printf inte att du vill ha en ny rad efter att utmatningen har skrivits ut. Således måste du använda det nya radtecknet 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' .

Hello, world

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 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

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

$ printf 'Hello, %s.'
Hello, .

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

Linux Bash printf Exempel

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

1. Formatera utmatning med en sträng

För att formatera utmatningen med textsträngar, använd %s direktiv.

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

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 undertecknad decimal.

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

Observera att om du vill använda en osignerad decimal i utmatningen måste du använda % u direktiv istället.

hur man får alla snapchat -troféer

Relaterad: Vad betyder 'Bash' i Linux?

3. Mata ut matematiska funktioner med printf

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

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

4. Formatera hexadecimala tal

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

$ printf %X 1000
3E8C

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

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

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

6. Formatera strängar med Unicode -tecken

Om du vill skriva ut Unicode -tecken med printf använder du u Escape 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 utdata

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 fylls i med mellanslag.

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

Value 1: 25
Value 2: 120

De %5d formatspecifikat i utdata 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 bredden kommer direktivet att vara vänsterjusterat istället för högerjusterat.

$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120

Om du vill göra bredden variabel kan du skicka en asterisk istället för ett tal, och printf använder nästa nummer som den hittar i argumentlistan.

$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120

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

Lär dig Linux printf -kommandot

Med kommandot printf i ditt Bash script -verktygsbälte ä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 se till 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.

Dela med sig Dela med sig Tweet E-post 10 bästa Linux distros för utvecklare

Redo att starta utvecklingen på ett operativsystem med öppen källkod? Här är de bästa Linux distros för programmering.

kan jag använda icloud på Android
Läs Nästa Relaterade ämnen
  • Linux
  • Linux Bash Shell
  • Linux -kommandon
Om författaren Jordan Gloor(51 artiklar publicerade)

Jordan är personalförfattare på MUO som brinner för att göra Linux tillgängligt och stressfritt för alla. Han skriver också guider om integritet och produktivitet.

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!

Klicka här för att prenumerera