{"id":2367,"date":"2022-03-11T01:33:40","date_gmt":"2022-03-11T01:33:40","guid":{"rendered":"https:\/\/navhow.com\/?p=2367"},"modified":"2022-06-21T14:35:29","modified_gmt":"2022-06-21T14:35:29","slug":"how-to-use-the-bash-printf-command-on-linux","status":"publish","type":"post","link":"https:\/\/navhow.com\/ro\/how-to-use-the-bash-printf-command-on-linux\/","title":{"rendered":"Cum s\u0103 utiliza\u021bi comanda Bash printf pe Linux"},"content":{"rendered":"<h1>Introducere<\/h1>\n<p>Comanda Bash printf v\u0103 ofer\u0103 mai mult\u0103 flexibilitate \u0219i op\u021biuni de formatare dec\u00e2t comanda echo atunci c\u00e2nd scrie\u021bi \u00eentr-o fereastr\u0103 de terminal Linux. Chiar \u0219i particularit\u0103\u021bile printf pot fi benefice.<\/p>\n<p>Este unul dintre cele mai fundamentale aspecte ale lucrului cu software. Citi\u021bi ce a scris aplica\u021bia pe ecran. Chiar \u0219i cu obiceiul derivat din Unix \u0219i suportat de Linux ca programele de linie de comand\u0103 s\u0103 fie c\u00e2t mai scurte posibil, multe aplica\u021bii scriu pe terminal doar c\u00e2nd ceva nu merge bine. O baz\u0103 crucial\u0103 \u00een programare este informarea utilizatorului despre ceea ce se \u00eent\u00e2mpl\u0103, se va \u00eent\u00e2mpla sau s-a \u00eent\u00e2mplat recent.<\/p>\n<p>Comanda echo din shell-ul Bash poate scrie text pe afi\u0219ajul terminalului. \u00cel pute\u021bi folosi \u00een scripturi sau pe linia de comand\u0103 \u0219i poate gestiona variabile \u0219i ar\u0103ta valorile acestora dac\u0103 sunt con\u021binute \u00een \u0219ir. Deci, ce rost are printf? Nu este scrierea textului ceva de care se ocup\u0103 ecou? Printf, pe de alt\u0103 parte, ofer\u0103 mai mult dec\u00e2t capacitatea de a scrie \u0219iruri \u00een ferestrele terminalului. V\u0103 ofer\u0103 mult\u0103 versatilitate atunci c\u00e2nd vine vorba de formatarea ie\u0219irii \u0219i are c\u00e2teva trucuri suplimentare \u00een m\u00e2nec\u0103.<\/p>\n<p>Comanda printf din Bash este similar\u0103 cu func\u021bia printf din C, totu\u0219i exist\u0103 mai multe modific\u0103ri. Va trebui s\u0103 fii con\u0219tient de modific\u0103ri dac\u0103 e\u0219ti familiarizat cu C.<\/p>\n<h1>Crearea \u0219irurilor simple<\/h1>\n<p>S\u0103 ne uit\u0103m la diferen\u021bele dintre echo \u0219i printf c\u00e2nd vine vorba de scrierea \u0219irurilor de caractere pe terminal.<\/p>\n<div>\n<div class=\"relateditemwrap\">\n<pre>ecou iat\u0103 c\u00e2teva cuvinte<\/pre>\n<pre>printf iat\u0103 c\u00e2teva cuvinte<\/pre>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-781489\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/1-3.png\" alt=\"Folosind echo \u0219i printf cu cuvinte f\u0103r\u0103 ghilimele\" width=\"644\" height=\"110\" \/><\/p>\n<p>\u00cen timp ce echo imprim\u0103 toate cuvintele, printf \u00eel public\u0103 pur \u0219i simplu pe primul. De asemenea, printf nu imprim\u0103 o linie nou\u0103. Ie\u0219irea este smack dab \u00een mijlocul promptului de comand\u0103. Dar, \u00een primul r\u00e2nd, toate cuvintele trebuie citate pentru ca printf s\u0103 ac\u021bioneze asupra lor.<\/p>\n<pre>ecou iat\u0103 c\u00e2teva cuvinte<\/pre>\n<pre>printf &quot;iat\u0103 c\u00e2teva cuvinte&quot;<\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-781490\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/2-3.png\" alt=\"Folosind echo \u0219i printf cu cuvinte citate\" width=\"644\" height=\"110\" \/><\/p>\n<p>Este un pas \u00eenainte. Am tip\u0103rit toate cuvintele, dar \u00eenc\u0103 a\u0219tept\u0103m o nou\u0103 linie. Acest lucru se datoreaz\u0103 faptului c\u0103 printf tip\u0103re\u0219te o linie nou\u0103 doar dac\u0103 o solicita\u021bi \u00een mod specific. Acest lucru poate suna incomod, dar v\u0103 permite s\u0103 alege\u021bi dac\u0103 ad\u0103uga\u021bi sau nu unul. Trebuie s\u0103 ad\u0103uga\u021bi \u201en\u201d \u00een \u0219irul dvs. pentru ca printf s\u0103 emit\u0103 o nou\u0103 linie. Secven\u021ba de evadare \u201enewline\u201d este folosit\u0103 aici.<\/p>\n<pre>ecou iat\u0103 c\u00e2teva cuvinte<\/pre>\n<pre>printf \u201eaici sunt c\u00e2teva cuvinte\u201d<\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-781491\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/3-4.png\" alt=\"Folosind echo \u0219i printf cu cuvinte ghilimele \u0219i caracterul newline\" width=\"644\" height=\"130\" \/><\/p>\n<p>Ve\u021bi folosi o linie nou\u0103 uneori \u0219i nu altele. \u00cen acest exemplu, o comand\u0103 printf utilizeaz\u0103 o nou\u0103 linie, \u00een timp ce cealalt\u0103 nu.<\/p>\n<pre>printf \u201eCum se face\u201d &amp;&amp; printf \u201eGeekn\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781492\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/4-3.png\" alt=\"Folosind dou\u0103 printfs pentru a crea o singur\u0103 linie de text\" width=\"644\" height=\"95\" \/><\/p>\n<p>Deoarece primul printf nu tip\u0103re\u0219te o linie nou\u0103, rezultatul de la al doilea printf este plasat pe aceea\u0219i linie cu \u201eHow-To\u201d. Pentru a tip\u0103ri o nou\u0103 linie, a doua printf folose\u0219te n. Linia de comand\u0103 va ap\u0103rea acum pe linia de sub textul tip\u0103rit.<\/p>\n<p>Personaje care au ocolit capturarea<\/p>\n<p>Iat\u0103 c\u00e2teva caractere suplimentare care pot fi folosite ca escape. A\u021bi v\u0103zut anterior cum func\u021bioneaz\u0103 \u201en\u201d.<\/p>\n<p>n: Comut\u0103 la o linie nou\u0103.<br \/>\nr: Aceast\u0103 comand\u0103 imprim\u0103 o \u00eentoarcere de c\u0103rucior. Cursorul de ie\u0219ire este returnat la \u00eenceputul liniei curente.<br \/>\nt: Aceast\u0103 comand\u0103 imprim\u0103 un caracter tabulator.<br \/>\nv: adaug\u0103 un spa\u021biu vertical de tab la pagin\u0103.<br \/>\n\\: Este imprimat un caracter bar\u0103 oblic\u0103 invers\u0103.<br \/>\n\u201e: Afi\u0219eaz\u0103 ghilimele.<br \/>\nb: Afi\u0219eaz\u0103 caracterul backspace.<\/p>\n<p>Caracterul de evadare pentru \u00eentoarcerea c\u0103ruciorului este folosit pentru a readuce cursorul la \u00eenceputul liniei curente.<\/p>\n<pre>printf \u201eMierea este r\u0103d\u0103cina tuturor relelorBanii\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781493\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/5-3.png\" alt=\"Folosind caracterul de \u00eentoarcere la c\u0103rucior pentru a reveni la \u00eenceputul liniei\" width=\"644\" height=\"95\" \/><\/p>\n<p>Comanda printf cite\u0219te de la st\u00e2nga la dreapta. P\u00e2n\u0103 c\u00e2nd printf detecteaz\u0103 caracterul de escape \u201er\u201d, \u0219irul este scris ca text obi\u0219nuit. Cursorul de ie\u0219ire este repozi\u021bionat la \u00eenceputul liniei curente.<\/p>\n<p>Cu litera imediat sub caracterul \u201er\u201d, procesarea \u0219irului continu\u0103. Restul face printf s\u0103 imprime \u201eBani\u201d, care \u00eenlocuie\u0219te expresia \u201eMiere\u201d.<\/p>\n<p>Caracterul backslash \u201e\u201d semnaleaz\u0103 secven\u021bele de escape, \u00een timp ce ghilimelele \u201e\u201d\u201d sunt folosite pentru a ghilimele \u0219iruri. Dac\u0103 dori\u021bi s\u0103 imprima\u021bi aceste caractere, utiliza\u021bi o bar\u0103 oblic\u0103 invers\u0103 pentru a le sc\u0103pa. Acest lucru indic\u0103 printf c\u0103 ar trebui tratate ca caractere literale.<\/p>\n<pre>printf \u201eAcesta este un tTab, acesta este un ghilimele \u201e, iar acesta \\ este un Backslashn\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781494\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/6-3.png\" alt=\"Evad\u00e2nd personaje, astfel \u00eenc\u00e2t acestea s\u0103 fie tratate la propriu\" width=\"644\" height=\"130\" \/><\/p>\n<h1>Variabile \u00een ac\u021biune<\/h1>\n<p>Utilizarea variabilelor cu printf este destul de similar\u0103 cu utilizarea variabilelor cu echo. Pentru a include o variabil\u0103, cum ar fi aceast\u0103 variabil\u0103 de mediu, utiliza\u021bi semnul dolar \u201e$\u201d \u00een mod normal \u00eenaintea acesteia.<\/p>\n<pre>printf &quot;Directorul principal: $HOMEn&quot;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781496\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/7-3.png\" alt=\"Folosind printf cu o variabil\u0103 de mediu\" width=\"644\" height=\"95\" \/><\/p>\n<h1>Formatarea \u0219irurilor<\/h1>\n<p>\u0218irurile de format sunt \u0219iruri care specific\u0103 formatul de ie\u0219ire. Furniza\u021bi textul \u0219irului de format \u0219i valori suplimentare cu care s\u0103 lucra\u021bi ca argumente.<\/p>\n<p>Textul, secven\u021bele de escape \u0219i specificatorii de format pot fi toate incluse \u00een \u0219irul de format.<\/p>\n<p>Specificatorii de format de la Printf \u00eel informeaz\u0103 ce fel de argument ar trebui s\u0103 accepte, cum ar fi \u0219iruri de caractere, numere sau caractere.<\/p>\n<p>Cei mai frecventi specificatori de format sunt afi\u0219a\u021bi mai jos. Un simbol \u201eprocent\u201d le precede pe toate. Pute\u021bi imprima un semn de procente combin\u00e2nd semnele de dou\u0103 procente \u201eprocent procent\u201d.<\/p>\n<ul>\n<li><strong>%s<\/strong>: Imprim\u0103 un \u0219ir.<\/li>\n<li><strong>%c<\/strong>: Imprim\u0103 un singur caracter.<\/li>\n<li><strong>%d<\/strong>: Imprim\u0103 un num\u0103r \u00eentreg.<\/li>\n<li><strong>%f<\/strong>: tip\u0103re\u0219te un num\u0103r \u00een virgul\u0103 mobil\u0103.<\/li>\n<li><strong>%u<\/strong>: Imprim\u0103 un \u00eentreg f\u0103r\u0103 semn.<\/li>\n<li><strong>%o<\/strong>: Imprim\u0103 o valoare \u00een octal.<\/li>\n<li><strong>%x<\/strong>: Imprim\u0103 o valoare \u00een\u00a0<a href=\"https:\/\/www.cloudsavvyit.com\/10165\/from-0-to-f-hexadecimal\/\">hexazecimal<\/a>, cu litere mici.<\/li>\n<li><strong>%X<\/strong>: Imprim\u0103 o valoare \u00een hexazecimal, cu majuscule.<\/li>\n<li><strong>%e<\/strong>: Tip\u0103re\u0219te un num\u0103r \u00een virgul\u0103 mobil\u0103 \u00een nota\u021bie \u0219tiin\u021bific\u0103, cu litere mici.<\/li>\n<li><strong>%E<\/strong>: Tip\u0103re\u0219te un num\u0103r \u00een virgul\u0103 mobil\u0103 \u00een nota\u021bie \u0219tiin\u021bific\u0103, cu majuscule.<\/li>\n<li><strong>%%<\/strong>: Imprim\u0103 un simbol procentual \u201e%\u201d.<\/li>\n<\/ul>\n<pre>printf \u201eCum se face %sn\u201d \u201eGeek\u201d<\/pre>\n<pre>printf \u201e%s%s %sn\u201d \u201eCum\u201d \u201e-To\u201d \u201eGeek\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781497\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/8-3.png\" alt=\"Se afi\u0219eaz\u0103 printf care accept\u0103 \u201eprea multe\u201d argumente\" width=\"644\" height=\"130\" \/><\/p>\n<p>\u0218irul de format al primei comenzi con\u021bine un con\u021binut propriu. \u0218irul \u201eGeek\u201d este trimis la printf ca argument. Specificatorul de format \u201e%s\u201d \u00eel potrive\u0219te \u0219i \u00eel imprim\u0103. \u00centre \u0219irul de format \u0219i \u0219irul de argument, exist\u0103 doar un spa\u021biu. \u00cen C, ar fi necesar\u0103 o virgul\u0103 pentru a le separa, dar cu versiunea Bash a printf, un spa\u021biu este suficient.<\/p>\n<p>Doar specificatorii de format \u0219i secven\u021ba de escape newline sunt incluse \u00een al doilea \u0219ir de format. Fiecare dintre specificatorii de format \u201e%s\u201d consum\u0103 pe r\u00e2nd cei trei parametri de \u0219ir. Din nou, \u00een C, este necesar\u0103 o virgul\u0103 \u00eentre fiecare parametru, dar func\u021bia Bash printf ne permite s\u0103 ignor\u0103m aceast\u0103 cerin\u021b\u0103.<\/p>\n<p>Pur \u0219i simplu utiliza\u021bi specificatorul de format adecvat pentru a scoate diferite tipuri de argumente. Iat\u0103 o func\u021bie simpl\u0103 de conversie a numerelor bazat\u0103 pe printf. \u00cen nota\u021bie zecimal\u0103, octal\u0103 \u0219i hexazecimal\u0103, vom tip\u0103ri num\u0103rul 15.<\/p>\n<pre>printf &quot;Dec: %dnOct: %onHex: %xn&quot; 15 15 15<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781498\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/9-3.png\" alt=\"folosind printf pentru a imprima valori numerice \u00een diferite nota\u021bii de baz\u0103\" width=\"644\" height=\"130\" \/><\/p>\n<p>S\u0103 o reducem pu\u021bin pentru a face exemplul mai pu\u021bin aglomerat.<\/p>\n<pre>printf \u201eHex: %xn\u201d 15<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781499\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/10-3.png\" alt=\"Imprimarea unei valori hexazecimale\" width=\"644\" height=\"95\" \/><\/p>\n<p>Majoritatea dintre noi suntem obi\u0219nui\u021bi s\u0103 vedem numere hexazecimale redate cu litere mari \u0219i cu valori mai mici de 0x10 precedate de un zero \u00eenainte. Putem face acest lucru plas\u00e2nd un specificator de l\u0103\u021bime \u00eentre semnul de procent \u201e%\u201d \u0219i caracterul \u201eX\u201d \u0219i utiliz\u00e2nd specificatorul de format hexazecimal majuscule \u201e% X\u201d.<\/p>\n<p>Aceasta specific\u0103 dimensiunea c\u00e2mpului \u00een care argumentul ar trebui s\u0103 fie tip\u0103rit la printf. S-au ad\u0103ugat spa\u021bii pe teren. Numerele din dou\u0103 cifre vor fi prezentate f\u0103r\u0103 nicio umplutur\u0103 \u00een acest stil.<\/p>\n<pre>printf \u201eHex: %2Xn\u201d 15<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781500\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/11-3.png\" alt=\"imprimarea unei valori hexazecimale cu majuscule \u00eentr-un c\u00e2mp de 2 caractere\" width=\"644\" height=\"95\" \/><\/p>\n<p>Acum avem o valoare majuscule cu un spa\u021biu de \u00eenceput scris pe ea. Prin plasarea unui zero \u00een fa\u021ba celor dou\u0103, putem avea printf pad c\u00e2mpul cu zerouri \u00een loc de spa\u021bii:<\/p>\n<pre>printf \"Hex: %02Xn\" 15<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781501\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/12-2.png\" alt=\"imprimarea unei valori hexazecimale cu majuscule \u00eentr-un c\u00e2mp cu l\u0103\u021bimea de 2 caractere completat cu zerouri\" width=\"644\" height=\"95\" \/><\/p>\n<p>Specificatorul de precizie v\u0103 permite s\u0103 specifica\u021bi c\u00e2te puncte zecimale trebuie incluse \u00een rezultat.<\/p>\n<pre>printf \"Floating point: %08.3fn\" 9.243546<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781502\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/13.png\" alt=\"Utilizarea modificatorilor de l\u0103\u021bime \u0219i precizie cu un num\u0103r \u00een virgul\u0103 mobil\u0103\" width=\"644\" height=\"95\" \/><\/p>\n<p>Acest lucru face ca crearea de tabele de rezultate cu rezultate perfect aliniate este o simpl\u0103 simpl\u0103. Aceast\u0103 comand\u0103 afi\u0219eaz\u0103 \u0219i o alt\u0103 idiosincrazie a lui Bash printf. Dac\u0103 exist\u0103 mai multe argumente dec\u00e2t specificatorii de format, argumentele sunt introduse \u00een \u0219irul de format \u00een loturi p\u00e2n\u0103 c\u00e2nd sunt toate epuizate. Cantitatea de specificatori de format din \u0219irul de format determin\u0103 dimensiunea lotului care este procesat la un moment dat. Argumentele suplimentare trimise la func\u021bia printf \u00een C sunt ignorate.<\/p>\n<pre>printf \u201eFloat: %8.3fn\u201d 9.243546 23.665 8.0021<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781503\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/14.png\" alt=\"Utilizarea modificatorilor de l\u0103\u021bime \u0219i precizie pentru a crea o mas\u0103 \u00eengrijit\u0103\" width=\"644\" height=\"130\" \/><\/p>\n<p>\u0218irurile pot folosi, de asemenea, specificatorii de l\u0103\u021bime \u0219i precizie. \u0218irurile sunt tip\u0103rite \u00eentr-un c\u00e2mp lat de 10 caractere folosind aceast\u0103 comand\u0103.<\/p>\n<pre>printf \"%10s %dn\" \"coats\" 7 \"shoes\" 22 \"Umbrellas\" 3<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781504\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/15.png\" alt=\"Folosind modificatorul de l\u0103\u021bime cu \u0219iruri\" width=\"644\" height=\"150\" \/><\/p>\n<p>\u00cen mod implicit, valorile sunt justificate la dreapta \u00een c\u00e2mpurile lor. Pentru a le justifica la st\u00e2nga, folosi\u021bi semnul minus \u201e<code>-<\/code>\u201eimediat \u00een urma procentului\u201d<code>%<\/code>&quot; semn.<\/p>\n<pre>printf &quot;%-10s %d&quot; &quot;paltoane&quot; 7 &quot;pantofi&quot; 22 &quot;Umbrele&quot; 3<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781505\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/16.png\" alt=\"Folosind un specificator de l\u0103\u021bime justificat la st\u00e2nga cu \u0219iruri\" width=\"644\" height=\"150\" \/><\/p>\n<p>Specificatorul de precizie v\u0103 permite s\u0103 alege\u021bi num\u0103rul maxim de caractere care vor fi imprimate. Literele dou\u0103 puncte \u201e:\u201d sunt folosite pentru a indica limit\u0103rile c\u00e2mpului de l\u0103\u021bime. Nu \u00een modul \u00een care termenul \u201eumbrele\u201d este scurtat.<\/p>\n<pre>printf \":%10.6s:n\" \"coats\" \"shoes\" \"Umbrellas\"<\/pre>\n<pre>printf &quot;:%-10.6s:n&quot; &quot;paltoane&quot; &quot;pantofi&quot; &quot;umbrele&quot;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781506\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/17.png\" alt=\"Utilizarea modificatorului de precizie pentru a limita num\u0103rul de caractere care sunt tip\u0103rite dintr-un \u0219ir\" width=\"644\" height=\"200\" \/><\/p>\n<p>Chiar \u0219i ca argument, specificatorul de l\u0103\u021bime poate fi folosit. \u00cen loc de un specificator numeric, utiliza\u021bi un asterisc \u201e*\u201d \u0219i furniza\u021bi l\u0103\u021bimea ca intrare \u00eentreg.<\/p>\n<pre>printf \u201e%*sn\u201d 20 \u201eCel mai din dreapta\u201d 12 \u201eMijloc\u201d 5 \u201eCel mai din st\u00e2nga\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781507\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/18.png\" alt=\"Trecerea specificatorului de l\u0103\u021bime ca argument pentru printf\" width=\"644\" height=\"150\" \/><\/p>\n<h1>Alte ciudatenii si trucuri<\/h1>\n<p>Specificatorii de format din \u0219irul de format vor func\u021biona cu valori de tipul adecvat, indiferent dac\u0103 sunt furnizate ca argumente obi\u0219nuite pe linia de comand\u0103 sau crea\u021bi ca rezultat al unei expresii.<\/p>\n<p>Aceasta afi\u0219eaz\u0103 rezultatul adun\u0103rii a dou\u0103 numere:<\/p>\n<pre>printf \u201e23+32=%dn\u201d $((23+32))<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781508\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/19.png\" alt=\"Tip\u0103rirea sumei a dou\u0103 numere\" width=\"644\" height=\"95\" \/><\/p>\n<p>Num\u0103rul de foldere din directorul de lucru curent este tip\u0103rit de aceast\u0103 comand\u0103:<\/p>\n<pre>printf \u201eExist\u0103 %d directoaren\u201d $(ls -d *\/ | wc -l)<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781509\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/20.png\" alt=\"Num\u0103rarea directoarelor cu printf\" width=\"644\" height=\"110\" \/><\/p>\n<p>Comanda printf afi\u0219eaz\u0103 un \u0219ir care a fost returnat de la un alt program.<\/p>\n<pre>printf \u201eUtilizator curent: %sn\u201d $(whoami)<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781510\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/21.png\" alt=\"Imprimarea rezultatului de la o alt\u0103 comand\u0103\" width=\"644\" height=\"95\" \/><\/p>\n<p>Dac\u0103 specificatorul de format de \u0219ir \u201eprocent s\u201d nu este dat cu un argument, printf returneaz\u0103 null.<\/p>\n<pre>printf \u201eUnul: %s doi: %sn\u201d \u201eAlfa\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781511\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/22.png\" alt=\"Cum se ocup\u0103 printf cu argumentele \u0219ir lips\u0103\" width=\"644\" height=\"95\" \/><\/p>\n<p>Dac\u0103 o valoare numeric\u0103 este dat\u0103 accidental pentru specificatorul de format de \u0219ir \u201e% s\u201d, aceasta o tip\u0103re\u0219te ca \u0219ir \u0219i nu se pl\u00e2nge. Dac\u0103 face\u021bi acest lucru folosind C printf, ve\u021bi ajunge cu o mul\u021bime de probleme. Software-ul dvs. se va pr\u0103bu\u0219i aproape sigur. Bash printf, pe de alt\u0103 parte, nu pare s\u0103-l deranjeze.<\/p>\n<pre>printf \u201eUnul: %s doi: %sn\u201d \u201eAlpha\u201d 777<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781512\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/23.png\" alt=\"Cum printf accept\u0103 \u00een t\u0103cere numerele \u00eentregi ca valori de \u0219ir\" width=\"644\" height=\"95\" \/><\/p>\n<p>Dac\u0103 specificatorul de format \u00eentreg \u201e% d\u201d nu prime\u0219te un argument, este tip\u0103rit zero.<\/p>\n<pre>printf \u201eNum\u0103r \u00eentreg: %dn\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781513\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/24.png\" alt=\"Cum printf gestioneaz\u0103 argumentele \u00eentregi lips\u0103\" width=\"644\" height=\"95\" \/><\/p>\n<p>Bash va afi\u0219a un mesaj de eroare \u0219i printf va imprima zero dac\u0103 specificatorul de format \u00eentreg \u201e% d\u201d prime\u0219te un \u0219ir de caractere introdus accidental.<\/p>\n<pre>printf &quot;Integer: %dn&quot; &quot;\u0218apte&quot;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781514\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/25.png\" alt=\"Cum trateaz\u0103 printf \u0219irurile care sunt furnizate \u00een loc de argumente \u00eentregi\" width=\"644\" height=\"110\" \/><\/p>\n<p>Simbolurile incomode pot fi create prin introducerea num\u0103rului lor Unicode, cunoscut \u0219i ca \u201epunct de cod\u201d. Litera \u201eu\u201d este folosit\u0103 pentru a evada anumite caractere, urmat\u0103 de valoarea lor Unicode.<\/p>\n<pre>printf &quot;Simbolul euro: u20ACn&quot;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781515\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/26.png\" alt=\"Se imprim\u0103 o valoare Unicode escape\" width=\"644\" height=\"95\" \/><\/p>\n<p>Pentru a acomoda secven\u021bele de escape \u00een \u0219irurile de argumente, utiliza\u021bi specificatorul de format \u201e% b\u201d \u00een loc de specificatorul de format de \u0219ir \u201e% s\u201d din \u0219irul de format.<\/p>\n<pre>printf &quot;%s&quot; &quot;u20ACn&quot;<\/pre>\n<pre>printf \u201e%b\u201d \u201eu20ACn\u201d<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-781517\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/03\/27.png\" alt=\"Folosind specificatorul de format %b pentru a gestiona secven\u021bele de escape \u00een argumente \u0219ir\" width=\"644\" height=\"130\" \/><\/p>\n<p>Comanda ini\u021bial\u0103 printf nu recunoa\u0219te secven\u021ba de escape newline \u0219i nu proceseaz\u0103 valoarea Unicode. Specificatorul de format \u201e% b\u201d este utilizat \u00een a doua comand\u0103 printf. Caracterul Unicode este tratat corespunz\u0103tor \u0219i este afi\u0219at\u0103 o nou\u0103 linie.<\/p>\n<h1 role=\"heading\" aria-level=\"2\">Cai pentru curse<\/h1>\n<p>S-ar putea s\u0103 fie nevoie s\u0103 introduce\u021bi ocazional un text \u00een fereastra terminalului. Cu toate acestea, printf este instrumentul ideal pentru sarcina \u00een care trebuie s\u0103 aplica\u021bi pozi\u021bionare \u0219i formatare.<\/p>\n<pre>printf &quot;%b&quot; &quot;Tha-&quot; &quot;tha-&quot; &quot;tha-&quot; &quot;asta-i tot oameni buni.n&quot;<\/pre>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Introducere Comanda Bash printf v\u0103 ofer\u0103 mai mult\u0103 flexibilitate \u0219i op\u021biuni de formatare dec\u00e2t comanda echo atunci c\u00e2nd scrie\u021bi pe un...<\/p>","protected":false},"author":1,"featured_media":2368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-study"],"_links":{"self":[{"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/posts\/2367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/comments?post=2367"}],"version-history":[{"count":29,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/posts\/2367\/revisions"}],"predecessor-version":[{"id":4498,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/posts\/2367\/revisions\/4498"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/media\/2368"}],"wp:attachment":[{"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/media?parent=2367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/categories?post=2367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navhow.com\/ro\/wp-json\/wp\/v2\/tags?post=2367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}