Dacă folosiți shell-ul Bash pentru o perioadă decentă de timp, probabil știți cum să imprimați șiruri de caractere î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 din shell-ul Bash este foarte similar, 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:
printf format [argument]
Printf va imprima fișierul format șir în timpul implementării scurgeri ( ) și directivelor ( % ) prin utilizarea specificațiilor argumente . Rețineți ieșirea următoarei comenzi:
$ printf 'Hello, %s' world
Hello, world
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” .
Hello, world
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 'My name is %s ' Jordan Gloor
My name is Jordan My name is 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 'Hello, %s.'
Hello, .
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. Formatați ieșirea cu un șir
Pentru a formata ieșirea cu șiruri de text, utilizați % s directivă.
$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.
2. Formatați ș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 was founded in %d.' 2007
MUO was founded in 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.
redarea muzicii de pe telefon în mașină
Legate de: Ce înseamnă „Bash” în Linux?
3. Ieșirea funcțiilor matematice utilizând 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 is %d' $((1+1))
1 + 1 is 2
4. Formatați 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. Imprimaț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' $(date +%s)
03-26-2021 15:27:57
Puteți vedea specificatorii de format pentru lună, zi, an, oră, minut și al doilea în ieșirea menționată mai sus.
6. Formatează șirurile 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' 'Valoare 1' 25 'Valoare 2' 120 va produce:
Value 1: 25
Value 2: 120
The % 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 ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120
Dacă doriți să faceți variabila lățime, puteți trece un asterisc în locul unui număr, iar printf va utiliza următorul număr pe care îl găsește în lista de argumente.
$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 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 terminalul dvs. 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.
Acțiune Acțiune Tweet E-mail Cele mai bune 10 distribuții Linux pentru dezvoltatoriSunteți gata să începeți dezvoltarea unui sistem de operare open source? Iată cele mai bune distribuții Linux pentru programare.
cum să descărcați filme de pe site-uri webCitiți în continuare Subiecte asemănătoare
- Linux
- Linux Bash Shell
- Comenzi Linux
Jordan este un scriitor de personal la MUO, pasionat de a face Linux accesibil și fără stres pentru toată lumea. De asemenea, scrie ghiduri privind confidențialitatea și productivitatea.
Mai multe de la Jordan GloorAboneaza-te la newsletter-ul nostru
Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Faceți clic aici pentru a vă abona