Če lupino Bash uporabljate že precej časa, verjetno veste, kako natisniti nize v terminalu Linux s pomočjo ukaza echo. Ukaz printf pa olajša tiskanje besedila z določenim oblikovanjem.

Danes se bomo naučili, kako uporabiti funkcijo printf, da bi izboljšali svoje sposobnosti skriptiranja Bash.

Kaj je funkcija Bash printf?

Kot že ime pove, je printf funkcija, ki natisne formatirane nize besedila. To pomeni, da lahko napišete nizno strukturo (format) in jo kasneje izpolnite z vrednostmi (argumenti).

Če poznate programske jezike C / C ++, morda že veste, kako deluje printf. Printf v lupini Bash je zelo podoben, vendar ima nekaj majhnih razlik.

Nauči se več: Najboljša spletna mesta za začetek programiranja na C ++

Kako uporabljati printf v Bash Shell

Osnovna sintaksa za printf je:

format printf [argument]

Printf bo natisnil format niz med izvajanjem pobegi (\) in direktiv (%) z uporabo navedenih argumenti. Upoštevajte rezultate naslednjega ukaza:

$ printf "Pozdravljen,% s" svet
Pozdravljen, svet
instagram viewer

Printf je vzel svetu argument in nadomestil % s znak v določenem nizu z njim.

Morda boste opazili, da po izhodu Bash ne ustvari nove vrstice za vas. Za razliko od ukaza echo printf po tiskanju izhoda ne bo domneval, da želite novo vrstico. Tako boste morali uporabiti nov znak vrstice \ n v vsakem primeru.

Če želite natisniti niz in se nato premakniti na novo vrstico, vnesite printf "Pozdravljeni, svet \ n".

Pozdravljen, svet

Upoštevati je treba, da bo printf poskušal ponovno uporabiti obliko za vse vaše argumente. To lahko izkoristite v svoj prid, če pa niste previdni, lahko dobite rezultate, kot je ta:

$ printf "Moje ime je% s" Jordan Gloor
Moje ime je Jordan Moje ime je Gloor

Zavedati se morate tudi, da bo printf, če manjka argument, vse direktive razlagal kot 0 (za številko) in nič (za niz).

$ printf "Pozdravljeni,% s."
Zdravo, .

Zdaj, ko veste, kako deluje skript Bash z printf v Linuxu, ste pripravljeni, da ga začnete uporabljati v svojih ukazih.

Primeri tiskanja za Linux Bash

Printf vsebuje številne specifikatorje formata, ki jih lahko uporabite v svojih skriptih. Danes pa bomo za funkcijo pokrivali le nekatere pogoste.

1. Izhod formatirajte z nizom

Če želite izhod oblikovati z nizi besedila, uporabite % s direktive.

$ printf "% s je eden največjih spletnih%%." MUO "tehnološke publikacije"
MUO je ena največjih spletnih publikacij o tehnologiji.

2. Formatiraj izhodni niz z decimalkami

Za oblikovanje niza s celim številom lahko uporabite % d za podpisano decimalno mesto.

$ printf "MUO je bil ustanovljen v% d." 2007
Podjetje MUO je bilo ustanovljeno leta 2007.

Če želite v izhodu uporabiti nepodpisano decimalno mesto, boste morali uporabiti % u namesto tega.

Sorodno: Kaj pomeni "Bash" v Linuxu?

3. Izhodne matematične funkcije z uporabo printf

Oblikovanje matematičnih funkcij z ukazom printf je enostavno. Preprosto postavite svoj izraz v dvojne oklepaje, kot običajno v Bashu, in izraz navedite na seznamu argumentov.

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

4. Oblikujte šestnajstiške številke

Če želite formatirati šestnajstiško številko, uporabite % x za male črke in % X za velike črke.

$ printf% X 1000
3E8C

5. Natisni datum in čas

Če želite natisniti trenutni datum in uro, lahko printf kombinirate z datum ukaz in prenesite naslednje smernice.

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

V zgoraj omenjenem izhodu lahko vidite specifikatorje oblike za mesec, dan, leto, uro, minuto in sekundo.

6. Oblikujte nize z znaki Unicode

Za tiskanje znakov Unicode z printf uporabite \ u pobeg za 16-bitni Unicode in \ U za 32-bitni Unicode.

Na primer, lahko natisnete avtorske pravice z naslednjim ukazom:

$ printf "\ u00A9"
©

7. Izhodu dodajte razmik

Strune lahko oblikujete z razmikom, tako da pred specifikatorjem direktive določite minimalno število natisnjenih znakov. Neuporabljeni znaki bodo zapolnjeni s presledki.

Na primer tipkanje printf "% s:% 5d \ n" "Vrednost 1" 25 "Vrednost 2" 120 bo izpisal:

Vrednost 1: 25
Vrednost 2: 120

The % 5d specifikator formata v izhodu pomeni, da bo formatirani niz vseboval najmanj pet znakov. Ker ima 25 samo dve števki, se preostalim znakom dodajo presledki.

Če kot širino prenesete negativno število, bo direktiva namesto desno poravnana.

$ printf "% -10s:% d" "Krogi" 25 "Polja" 120
Krogi: 25 škatel: 120

Če želite spremenljivko širine narediti, lahko namesto številke dodate zvezdico, printf pa bo uporabil naslednjo številko, ki jo najde na seznamu argumentov.

$ printf "% * s:% d" -10 "Krogi" 25 -10 "Škatle" 120
Krogi: 25 škatel: 120

Sorodno: Vse, kar morate vedeti o Bash For Loops v Linuxu

Učenje ukaza Linux printf

Z ukazom printf v pasu za pripomočke za skriptiranje Bash lahko začnete tiskati zapletene in različne nize v terminalu. Ko razvijate skripte Bash, je pomembno, da delate v čim bolj produktivnem okolju. To ne bo samo izboljšalo vaših spretnosti ukazne vrstice, ampak tudi vaše delovne tokove na splošno.

E-naslov
10 najboljših distribucij Linuxa za razvijalce

Ste pripravljeni začeti razvoj na odprtokodnem operacijskem sistemu? Tu so najboljši distribucijski sistemi Linux za programiranje.

Preberite Naprej

Sorodne teme
  • Linux
  • Linux Bash Shell
  • Ukazi za Linux
O avtorju
Jordan Gloor (32 objavljenih člankov)

Jordan je mentor in novinar, ki je navdušen nad tem, da bi Linux postal dostopen in brez stresa za vse. Ima diplomo iz angleščine in pripravljen je za vroč čaj. V toplih letnih časih uživa v kolesarjenju po hribih Ozarks, kjer živi.

Več od Jordan Gloor

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.