Hvis du har brugt Bash-skallen i en anstændig periode, ved du sandsynligvis, hvordan du udskriver strenge i Linux-terminalen ved hjælp af ekkokommandoen. Printf-kommandoen gør det dog meget lettere at udskrive tekst med specifik formatering.

I dag lærer vi, hvordan vi bruger 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 er fortrolig med C / C ++ programmeringssprog, ved du måske allerede, hvordan printf fungerer. Printf i Bash-skalen er meget ens, men det har nogle få små forskelle.

Lær mere: Bedste steder 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 undslipper (\) og direktiver (%) ved brug af specificeret argumenter. Bemærk output fra følgende kommando:

$ printf "Hej,% s" verden
Hej Verden

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

Du bemærker muligvis, at Bash efter output ikke opretter en ny linje til dig. I modsætning til ekkokommandoen antager printf ikke, at du vil have en ny linje, efter at output er udskrevet. Således skal du bruge den nye linjetegn \ 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".

Hej Verden

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 at få resultater som denne:

$ printf "Mit navn er% s" Jordan Gloor
Mit navn er Jordan Mit navn er Gloor

Du skal også være opmærksom på, at hvis et argument mangler, fortolker printf alle direktiver som 0 (for et nummer) og nul (for en streng).

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

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

Linux Bash printf Eksempler

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

1. Formater output med en streng

For at formatere output med tekststrenge skal du bruge % s direktiv.

$ printf "% s er en af ​​de største online% s." MUO "teknologipublikationer"
MUO er en af ​​de største online-teknologipublikationer.

2. Formater outputstreng med decimaler

For at formatere en streng med et heltal kan du bruge % d direktiv for en underskrevet decimal.

$ printf "MUO blev grundlagt i% d." 2007
MUO blev grundlagt i 2007.

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

Relaterede: Hvad betyder "Bash" i Linux?

3. Output Math-funktioner ved hjælp af printf

Formatering af matematiske funktioner med printf-kommandoen er let. Placer blot dit udtryk inden for dobbelte parenteser, som du normalt gør i Bash, og angiv udtrykket i argumentlisten.

$ printf "1 + 1 er% d" $ ((1 + 1))
1 + 1 er 2

4. Formater hexadecimale tal

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

$ printf% X 1000
3E8C

5. Udskriv dato og klokkeslæt

For at udskrive den aktuelle dato og tid kan du kombinere printf med dato kommandere og videregive følgende direktiver.

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

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

6. Formatere strenge med Unicode-tegn

For at udskrive Unicode-tegn med printf skal du bruge \ u flygte til 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 mellemrum til output

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

For eksempel at skrive printf "% s:% 5d \ n" "Værdi 1" 25 "Værdi 2" 120 vil output:

Værdi 1: 25
Værdi 2: 120

Det % 5d formatspecifikator 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 angiver et negativt tal som bredden, vil direktivet være venstrejusteret i stedet for højrejusteret.

$ printf "% -10s:% d" "Cirkler" 25 "Kasser" 120
Cirkler: 25 Kasser: 120

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

$ printf "% * s:% d" -10 "Cirkler" 25-10 "Kasser" 120
Cirkler: 25 Kasser: 120

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

Læring af Linux printf-kommandoen

Med printf-kommandoen i dit Bash scripting-værktøjsbælte er du klar til at udskrive komplekse og varierende strenge i din terminal. Når du udvikler dine Bash-scripts, er det vigtigt at sikre dig, at du arbejder i et så produktivt miljø som muligt. Dette forbedrer ikke kun dine kommandolinjefærdigheder, men forbedrer også din arbejdsgang generelt.

E-mail
10 bedste Linux-distroer til udviklere

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

Læs Næste

Relaterede emner
  • Linux
  • Linux Bash Shell
  • Linux-kommandoer
Om forfatteren
Jordan Gloor (32 udgivne artikler)

Jordan er en vejleder og journalist, der brænder for at gøre Linux tilgængeligt og stressfrit for alle. Han har en BA på engelsk og noget for varm te. I de varme årstider nyder han at cykle bakkerne i Ozarks, hvor han bor.

Mere fra Jordan Gloor

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.