Dacă folosiți shell-ul Bash pentru o perioadă decentă de timp, probabil că știți cum să imprimați șiruri în terminalul Linux folosind comanda echo. Cu toate acestea, comanda printf facilitează mult imprimarea textului cu formatare specifică.
Astăzi vom învăța cum să folosim funcția printf pentru a ne îmbunătăți abilitățile de scriptare Bash.
Ce este funcția Bash printf?
După cum sugerează și numele, printf este o funcție care imprimă șiruri de text formatate. Asta înseamnă că puteți scrie o structură de șiruri (formatul) și ulterior o completați cu valori (argumentele).
Dacă sunteți familiarizat cu limbajele de programare C / C ++, este posibil să știți deja cum funcționează printf. Printf în shell-ul Bash este foarte asemănător, dar are câteva mici diferențe.
Aflați mai multe: Cele mai bune site-uri pentru a începe cu programarea C ++
Cum se folosește printf în Bash Shell
Sintaxa de bază pentru printf este:
format printf [argument]
Printf va imprima fișierul format șir în timpul implementării
scapă (\) și directivelor (%) prin utilizarea specificațiilor argumente. Rețineți ieșirea următoarei comenzi:$ printf Lumea „Bună ziua,% s”
Salut Lume
Printf a luat lume argument și a înlocuit % s caracter în șirul specificat cu acesta.
Este posibil să observați că, după ieșire, Bash nu creează o nouă linie pentru dvs. Spre deosebire de comanda echo, printf nu va presupune că doriți o nouă linie după imprimarea ieșirii. Astfel, va trebui să utilizați noul caracter de linie \ n în fiecare caz.
Pentru a imprima un șir și apoi a trece la o nouă linie, tastați printf "Bună ziua, lume \ n".
Salut Lume
Este important să rețineți că printf va încerca să refolosească formatul pentru toate argumentele dvs. Puteți utiliza acest lucru în avantajul dvs., dar dacă nu sunteți atent, puteți ajunge la rezultate de acest fel:
$ printf „Numele meu este% s” Jordan Gloor
Numele meu este Jordan Numele meu este Gloor
De asemenea, trebuie să știți că, dacă lipsește un argument, printf va interpreta orice directivă ca fiind 0 (pentru un număr) și nul (pentru un șir).
$ printf "Bună ziua,% s."
Buna ziua, .
Acum, că știți cum funcționează scripturile Bash cu printf în Linux, sunteți gata să începeți să îl utilizați în comenzile dvs.
Linux Bash printf Exemple
Printf are multe specificații de format pe care le puteți utiliza în scripturi. Dar astăzi vom acoperi doar unele comune pentru funcție.
1. Formatează ieșirea cu un șir
Pentru a formata ieșirea cu șiruri de text, utilizați % s directivă.
$ printf "% s este unul dintre cele mai mari% s online." „Publicații tehnologice” MUO
MUO este una dintre cele mai mari publicații de tehnologie online.
2. Formatează șirul de ieșire cu zecimale
Pentru a formata un șir cu un număr întreg, puteți utiliza fișierul % d directivă pentru o zecimală semnată.
$ printf "MUO a fost fondat în% d." 2007
MUO a fost fondată în 2007.
Rețineți că, dacă doriți să utilizați o zecimală nesemnată în ieșire, va trebui să utilizați % u directivă în schimb.
Legate de: Ce înseamnă „Bash” în Linux?
3. Funcții matematice de ieșire folosind printf
Formatarea funcțiilor matematice cu comanda printf este ușoară. Așezați-vă expresia în paranteze duble, așa cum faceți în mod normal în Bash și specificați expresia în lista de argumente.
$ printf "1 + 1 este% d" $ ((1 + 1))
1 + 1 este 2
4. Formatează numerele hexazecimale
Dacă trebuie să formatați un număr hexazecimal, utilizați %X pentru minuscule și %X pentru majuscule.
$ printf% X 1000
3E8C
5. Tipăriți data și ora
Pentru a imprima data și ora curente, puteți combina printf cu Data comandați și treceți următoarele directive.
$ printf "% (% m-% d-% Y% H:% M:% S) T" $ (data +% s)
03-26-2021 15:27:57
Puteți vedea specificatorii de format pentru lună, zi, an, oră, minut și secundă în ieșirea menționată mai sus.
6. Formatează șiruri cu caractere Unicode
Pentru a imprima caractere Unicode cu printf, utilizați \ u escape pentru Unicode pe 16 biți și \ U pentru Unicode pe 32 de biți.
De exemplu, puteți imprima fișierul drepturi de autor simbol cu următoarea comandă:
$ printf "\ u00A9"
©
7. Adăugați spațiu la ieșire
Puteți formata șirurile dvs. cu spațiere definind, înainte de specificatorul directivei, un număr minim de caractere tipărite. Caracterele neutilizate vor fi completate cu spații.
De exemplu, tastarea printf "% s:% 5d \ n" "Valoarea 1" 25 "Valoarea 2" 120 va produce:
Valoare 1: 25
Valoare 2: 120
% 5d specificatorul de format din ieșire indică faptul că șirul formatat va conține cel puțin cinci caractere. Deoarece 25 are doar două cifre, spațiile sunt adăugate caracterelor rămase.
Dacă treceți un număr negativ ca lățime, directiva va fi justificată la stânga în loc de justificată la dreapta.
$ printf "% -10s:% d" "Cercuri" 25 "Cutii" 120
Cercuri: 25 Cutii: 120
Dacă doriți să faceți variabila lățime, puteți trece un asterisc în locul unui număr, iar printf va folosi următorul număr pe care îl găsește în lista de argumente.
$ printf "% * s:% d" -10 "Cercuri" 25 -10 "Cutii" 120
Cercuri: 25 Cutii: 120
Legate de: Tot ce trebuie să știți despre Bash For Loops în Linux
Învățarea comenzii Linux printf
Cu comanda printf din centura utilitară de scriptare Bash, sunteți gata să începeți să imprimați șiruri complexe și variabile în terminal. Pe măsură ce vă dezvoltați scripturile Bash, este important să vă asigurați că lucrați în cel mai productiv mediu posibil. Acest lucru nu numai că vă va îmbunătăți abilitățile din linia de comandă, ci vă va îmbunătăți și fluxul de lucru în general.
Sunteți gata să începeți dezvoltarea unui sistem de operare open source? Iată cele mai bune distribuții Linux pentru programare.
Citiți în continuare
- Linux
- Linux Bash Shell
- Comenzi Linux
Jordan este un tutor și jurnalist pasionat de a face Linux accesibil și fără stres pentru toată lumea. Are un BA în limba engleză și un lucru pentru ceaiul fierbinte. În timpul anotimpurilor calde, îi place să meargă cu bicicleta pe dealurile Ozarks în care locuiește.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Încă un pas…!
Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.