Bash printf Funktion: 7 eksempler til Linux

Bash printf Funktion: 7 eksempler til Linux

Hvis du har brugt Bash -skallen i en anstændig tid, ved du sikkert, hvordan du udskriver strenge i Linux -terminalen ved hjælp af ekkokommandoen. Kommandoen printf gør det imidlertid meget lettere at udskrive tekst med specifik formatering.





I dag lærer vi, hvordan vi kan bruge printf -funktionen for at forbedre vores Bash -scripting -færdigheder.





Hvad er Bash printf -funktionen?

Som navnet antyder, er printf en funktion, der udskriver formaterede tekststrenge. Det betyder, at du kan skrive en strengstruktur (formatet) og senere udfylde den med værdier (argumenterne).





Hvis du kender programmeringssprog C/C ++, ved du måske allerede, hvordan printf fungerer. Printf i Bash -skallen ligner meget, men den har dog et par små forskelle.

Lær mere: Bedste websteder til at komme i gang med C ++ programmering



Sådan bruges printf i Bash Shell

Den grundlæggende syntaks for printf er:

printf format [argument]

Printf udskriver format streng under implementering utætheder ( ) og direktiver ( % ) ved brug af specificeret argumenter . Bemærk output fra følgende kommando:





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

Printf tog verden argument og erstattede %s tegn i den angivne streng med den.

Du vil muligvis bemærke, at Bash efter udgangen ikke opretter en ny linje til dig. I modsætning til ekkokommandoen antager printf ikke, at du vil have en ny linje, når output er udskrevet. Således skal du bruge det nye stregtegn n i hvert tilfælde.





Hvis du vil udskrive en streng og derefter flytte til en ny linje, skal du skrive printf 'Hej, verden n' .

Hello, world

Det er vigtigt at huske på, at printf vil forsøge at genbruge formatet til alle dine argumenter. Du kan bruge dette til din fordel, men hvis du ikke er forsigtig, kan du ende med resultater som dette:

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

Du skal også være opmærksom på, at hvis der mangler et argument, vil printf fortolke alle direktiver som 0 (for et tal) og nul (for en snor).

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

Nu hvor du ved, hvordan Bash -scripting med printf i Linux fungerer, er du klar til at begynde at bruge det i dine kommandoer.

Linux Bash printf Eksempler

Printf indeholder mange formatspecifikationer, som du kan bruge i dine scripts. Men i dag dækker vi kun nogle almindelige for funktionen.

1. Formatér output med en streng

For at formatere output med tekststrenge, brug %s direktiv.

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

2. Formatér outputstreng med decimaler

For at formatere en streng med et helt tal kan du bruge %d direktiv om en underskrevet decimal.

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

Bemærk, at hvis du vil bruge en usigneret decimal i output, skal du bruge % u direktiv i stedet.

hvorfor virker mit billede ikke

Relaterede: Hvad betyder 'Bash' i Linux?

3. Output matematiske funktioner ved hjælp af printf

Det er let at formatere matematiske funktioner med printf -kommandoen. Placer bare dit udtryk inde i dobbeltparenteser, som du normalt gør i Bash, og angiv udtrykket i listen med argumenter.

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

4. Formater hexadecimale tal

Hvis du skal formatere et hexadecimalt tal, skal du bruge % x for små og % X for store bogstaver.

$ printf %X 1000
3E8C

For at udskrive den aktuelle dato og klokkeslæt kan du kombinere printf med dato kommando og videregive følgende direktiver.

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

Du kan se formatspecifikationerne for måned, dag, år, time, minut og sekund i det førnævnte output.

6. Formatér strenge med Unicode -tegn

Hvis du vil udskrive Unicode -tegn med printf, skal du bruge u escape for 16-bit Unicode og U til 32-bit Unicode.

For eksempel kan du udskrive ophavsret symbol med følgende kommando:

$ printf 'u00A9'
©

7. Tilføj afstand til output

Du kan formatere dine strenge med mellemrum ved at definere et minimalt antal tegn, der er udskrevet, før direktivet angiver. Ubrugte tegn udfyldes med mellemrum.

For eksempel at skrive printf '%s:%5d n' 'Værdi 1' 25 'Værdi 2' 120 vil udsende:

Value 1: 25
Value 2: 120

Det %5d format specificer i output angiver, at den formaterede streng vil indeholde mindst fem tegn. Da 25 kun har to cifre, tilføjes mellemrum til de resterende tegn.

Hvis du sender et negativt tal som bredden, vil direktivet blive venstrejusteret i stedet for højre-begrundet.

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

Hvis du vil lave bredden variabel, kan du sende en stjerne i stedet for et tal, og printf vil bruge det næste tal, den finder i argumentlisten.

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

Relaterede: Alt hvad du behøver at vide om Bash For Loops i Linux

Lær Linux printf -kommandoen

Med kommandoen printf i dit Bash script -værktøjsbælte er du klar til at begynde at udskrive komplekse og varierende strenge i din terminal. Når du udvikler dine Bash -scripts, er det vigtigt at sikre, at du arbejder i det mest produktive miljø. Dette vil ikke kun forbedre dine kommandolinjefærdigheder, men vil også forbedre din arbejdsgang generelt.

Del Del Tweet E -mail 10 Bedste Linux Distros til udviklere

Klar til at starte udviklingen på et open source -operativsystem? Her er de bedste Linux -distros til programmering.

hvordan man sletter en anden side i word
Læs Næste Relaterede emner
  • Linux
  • Linux Bash Shell
  • Linux -kommandoer
Om forfatteren Jordan Gloor(51 artikler udgivet)

Jordan er medarbejderforfatter på MUO, der brænder for at gøre Linux tilgængeligt og stressfrit for alle. Han skriver også vejledninger om privatliv og produktivitet.

Mere fra Jordan Gloor

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere