Č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
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.
Ste pripravljeni začeti razvoj na odprtokodnem operacijskem sistemu? Tu so najboljši distribucijski sistemi Linux za programiranje.
Preberite Naprej
- Linux
- Linux Bash Shell
- Ukazi za Linux
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.
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.