Bash printf Funksjon: 7 eksempler for Linux

Bash printf Funksjon: 7 eksempler for Linux

Hvis du har brukt Bash -skallet for en anstendig tid, vet du sannsynligvis hvordan du skriver ut strenger i Linux -terminalen ved hjelp av ekkokommandoen. Printf -kommandoen gjør det imidlertid lettere å skrive ut tekst med spesifikk formatering.





I dag lærer vi hvordan vi kan bruke printf -funksjonen for å forbedre våre Bash -skriptkunnskaper.





Hva er Bash printf -funksjonen?

Som navnet antyder, er printf en funksjon som skriver ut formaterte tekststrenger. Det betyr at du kan skrive en strengstruktur (formatet) og senere fylle den inn med verdier (argumentene).





Hvis du er kjent med programmeringsspråk C/C ++, vet du kanskje allerede hvordan printf fungerer. Printf i Bash -skallet er veldig likt, men det har noen få små forskjeller.

Lære mer: Beste nettsteder for å komme i gang med C ++ - programmering



Hvordan bruke printf i Bash Shell

Den grunnleggende syntaksen for printf er:

printf format [argument]

Printf vil skrive ut format streng mens du implementerer lekkasjer ( ) og direktiver ( % ) ved bruk av spesifisert argumenter . Legg merke til utdataene fra følgende kommando:





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

Printf tok verden argumentet og erstattet %s tegnet i den angitte strengen med den.

Du kan legge merke til at Bash ikke lager en ny linje etter utgangen. I motsetning til ekkokommandoen antar printf ikke at du vil ha en ny linje etter at utskriften er skrevet ut. Dermed må du bruke det nye linjetegnet n i hvert tilfelle.





Hvis du vil skrive ut en streng og deretter gå til en ny linje, skriver du inn printf 'Hei, verden n' .

Hello, world

Det er viktig å huske på at printf vil prøve å gjenbruke formatet for alle argumentene dine. Du kan bruke dette til din fordel, men hvis du ikke er forsiktig, kan du ende opp med resultater som dette:

$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

Du bør også være oppmerksom på at hvis et argument mangler, vil printf tolke eventuelle direktiver som 0 (for et tall) og null (for en streng).

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

Nå som du vet hvordan Bash -skripting med printf i Linux fungerer, er du klar til å begynne å bruke det i kommandoene dine.

Linux Bash printf Eksempler

Printf har mange formatspesifikatorer som du kan bruke i skriptene dine. Men i dag vil vi bare dekke noen vanlige for funksjonen.

1. Format utgang med en streng

For å formatere utskriften med tekststrenger, bruk %s direktiv.

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

2. Formater utgangsstreng med desimaler

For å formatere en streng med et heltall, kan du bruke %d direktiv for en signert desimal.

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

Vær oppmerksom på at hvis du vil bruke en usignert desimal i utdataene, må du bruke % u direktiv i stedet.

hvordan kontakte noen på youtube

I slekt: Hva betyr 'Bash' i Linux?

3. Utdata matematiske funksjoner ved hjelp av printf

Det er enkelt å formatere matematiske funksjoner med printf -kommandoen. Bare plasser uttrykket ditt inne i doble parenteser som du vanligvis gjør i Bash, og spesifiser uttrykket i argumentlisten.

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

4. Formater heksadesimale tall

Hvis du trenger å formatere et heksadesimalt tall, bruker du % x for små og % X for store bokstaver.

$ printf %X 1000
3E8C

For å skrive ut gjeldende dato og klokkeslett, kan du kombinere printf med Dato kommando og vedta følgende direktiver.

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

Du kan se formatspesifikatorene for måned, dag, år, time, minutt og sekund i ovennevnte utdata.

6. Formatere strenger med Unicode -tegn

For å skrive ut Unicode -tegn med printf, bruk u flukt for 16-biters Unicode og U for 32-bits Unicode.

For eksempel kan du skrive ut opphavsrett symbol med følgende kommando:

$ printf 'u00A9'
©

7. Legg til mellomrom i utgangen

Du kan formatere strengene dine med mellomrom ved å definere et minimalt antall tegn som skrives ut før direktivet. Ubrukte tegn fylles ut med mellomrom.

For eksempel å skrive printf '%s:%5d n' 'Verdi 1' 25 'Verdi 2' 120 kommer ut:

Value 1: 25
Value 2: 120

De %5d formatspesifikator i utgangen angir at den formaterte strengen vil inneholde minst fem tegn. Siden 25 bare har to sifre, blir mellomrom lagt til de gjenværende tegnene.

Hvis du sender et negativt tall som bredden, vil direktivet bli venstrejustert i stedet for høyre-begrunnet.

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

Hvis du vil gjøre breddevariabelen, kan du sende en stjerne i stedet for et tall, og printf vil bruke det neste tallet den finner i argumentlisten.

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

I slekt: Alt du trenger å vite om Bash For Loops i Linux

Lære Linux printf -kommandoen

Med printf -kommandoen i Bash -scriptverktøybeltet ditt, er du klar til å begynne å skrive ut komplekse og varierende strenger i terminalen. Når du utvikler Bash -skriptene dine, er det viktig å sørge for at du jobber i et mest mulig produktivt miljø. Dette vil ikke bare forbedre kommandolinjeferdighetene dine, men vil også forbedre arbeidsflyten din generelt.

Dele Dele kvitring E -post 10 beste Linux -distroer for utviklere

Klar til å starte utviklingen på et operativsystem med åpen kildekode? Her er de beste Linux -distroene for programmering.

hvor ble batteriikonet mitt av Windows 10
Les neste Relaterte temaer
  • Linux
  • Linux Bash Shell
  • Linux -kommandoer
Om forfatteren Jordan Gloor(51 artikler publisert)

Jordan er en personalforfatter på MUO som brenner for å gjøre Linux tilgjengelig og stressfritt for alle. Han skriver også guider om personvern og produktivitet.

Mer fra Jordan Gloor

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere