Jei „Bash“ apvalkalą naudojote pakankamai ilgai, tikriausiai žinote, kaip spausdinti eilutes „Linux“ terminale naudojant komandą echo. Tačiau komanda „printf“ leidžia žymiai lengviau spausdinti tekstą su konkrečiu formatavimu.

Šiandien mes sužinosime, kaip naudotis „printf“ funkcija, kad galėtume patobulinti „Bash“ scenarijaus įgūdžius.

Kas yra „Bash printf“ funkcija?

Kaip rodo pavadinimas, printf yra funkcija, kuri spausdina suformatuotas teksto eilutes. Tai reiškia, kad galite parašyti eilutės struktūrą (formatą) ir vėliau ją užpildyti reikšmėmis (argumentais).

Jei esate susipažinę su C / C ++ programavimo kalbomis, galbūt jau žinote, kaip veikia „printf“. „Bash“ apvalkalo „Printf“ yra labai panašus, tačiau jis turi keletą nedidelių skirtumų.

Sužinokite daugiau: Geriausios svetainės, skirtos pradėti programuoti C ++

Kaip naudoti „printf“ „Bash Shell“

Pagrindinė „printf“ sintaksė yra:

printf formatas [argumentas]

„Printf“ atspausdins formatas eilutė įgyvendinant pabėga (\) ir direktyvas (%) naudojant nurodytą argumentai. Atkreipkite dėmesį į šios komandos išvestį:

instagram viewer
$ printf „Sveiki,% s“ pasauli
Labas pasauli

„Printf“ paėmė pasaulyje argumentą ir pakeitė % s simbolis nurodytoje eilutėje su juo.

Galite pastebėti, kad po išvesties Bashas jums nesukuria naujos eilutės. Skirtingai nuo komandos echo, printf nemanys, kad po išvesties atspausdinsite naują eilutę. Taigi turėsite naudoti naują eilutės simbolį \ n kiekvienu atveju.

Norėdami spausdinti eilutę ir pereiti prie naujos eilutės, įveskite printf "Sveiki, pasauli \ n".

Labas pasauli

Svarbu nepamiršti, kad „printf“ bandys pakartotinai naudoti visų jūsų argumentų formatą. Tai galite panaudoti savo naudai, bet jei nesate atsargūs, galite pasiekti tokių rezultatų:

$ printf "Mano vardas% s" Jordan Gloor
Mano vardas Jordanija, aš esu Glooras

Taip pat turėtumėte žinoti, kad jei trūksta argumento, „printf“ bet kokias direktyvas aiškins kaip 0 (skaičiui) ir niekinis (stygai).

$ printf "Sveiki,% s".
Sveiki, .

Dabar, kai žinote, kaip veikia „Bash“ scenarijai naudojant „printf“ sistemoje „Linux“, esate pasirengę pradėti jį naudoti savo komandose.

„Linux Bash printf“ pavyzdžiai

„Printf“ turi daug formatų specifikacijų, kurias galite naudoti savo scenarijuose. Tačiau šiandien aptarsime tik keletą įprastų šios funkcijos.

1. Formatuoti išvestį eilute

Norėdami formatuoti išvestį teksto eilutėmis, naudokite % s direktyvą.

$ printf "% s yra vienas didžiausių internetinių% s." MUO „technologijų leidiniai“
MUO yra vienas didžiausių internetinių technologijų leidinių.

2. Formatuoti išvesties eilutę su kableliais

Norėdami formatuoti eilutę sveikuoju skaičiumi, galite naudoti % d dešimtosios dalies.

$ printf "MUO buvo įkurta% d." 2007 m
MUO buvo įkurta 2007 m.

Atkreipkite dėmesį, kad jei norite išvestyje naudoti nepasirašytą dešimtainį skaičių, turėsite naudoti % u vietoj to.

Susijęs: Ką reiškia „Bash“ sistemoje „Linux“?

3. Išvesties matematikos funkcijos naudojant printf

Matematikos funkcijas lengva suformatuoti naudojant komandą printf. Tiesiog įdėkite savo išraišką į dvigubus skliaustus, kaip paprastai darote „Bash“, ir nurodykite išraišką argumentų sąraše.

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

4. Formatuoti šešioliktainius skaičius

Jei reikia formatuoti šešioliktainį skaičių, naudokite % x mažosioms ir % X didžiosioms raidėms.

$ printf% X 1000
3E8C

5. Spausdinti datą ir laiką

Norėdami išspausdinti dabartinę datą ir laiką, galite derinti „printf“ su data vadovauti ir priimti šias direktyvas.

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

Pirmiau minėtame išvestyje galite pamatyti mėnesio, dienos, metų, valandos, minutės ir sekundės formato specifikatorius.

6. Formatuoti eilutes su „Unicode“ simboliais

Norėdami spausdinti „Unicode“ simbolius naudodami „printf“, naudokite \ u pabėgti dėl 16 bitų „Unicode“ ir \ U 32 bitų „Unicode“.

Pavyzdžiui, galite atsispausdinti autorių teisės simbolis su tokia komanda:

$ printf "\ u00A9"
©

7. Pridėkite tarpą prie išvesties

Galite formatuoti eilutes tarpais, prieš nurodydami direktyvą, nurodydami minimalų spausdinamų simbolių skaičių. Nenaudojami simboliai bus užpildyti tarpais.

Pavyzdžiui, rašyti printf "% s:% 5d \ n" "1 reikšmė" 25 "2 reikšmė" 120 išves:

1 vertė: 25
2 vertė: 120

% 5d formato specifikatorius išvestyje reiškia, kad suformatuotoje eilutėje bus mažiausiai penki simboliai. Kadangi 25 yra tik du skaitmenys, prie likusių simbolių pridedami tarpai.

Jei pločio reikšmė bus neigiama, direktyva bus pagrįsta kairiuoju, o ne dešiniuoju.

$ printf "% -10s:% d" "Apskritimai" 25 "Dėžutės" 120
Apskritimai: 25 dėžės: 120

Jei norite padaryti pločio kintamąjį, vietoj skaičiaus galite praleisti žvaigždutę, o „printf“ naudos kitą skaičių, kurį ras argumentų sąraše.

$ printf "% * s:% d" -10 "apskritimai" 25-10 "dėžutės" 120
Apskritimai: 25 dėžės: 120

Susijęs: Viskas, ką reikia žinoti apie „Bash for Loops“ sistemoje „Linux“

Mokomės „Linux printf“ komandos

Naudodami komandą „printf“, esančią „Bash“ scenarijų naudingumo juostoje, būsite pasirengę pradėti spausdinti sudėtingas ir įvairias eilutes savo terminale. Kuriant „Bash“ scenarijus, svarbu įsitikinti, kad dirbate kuo produktyvesnėje aplinkoje. Tai ne tik pagerins jūsų komandinės eilutės įgūdžius, bet ir apskritai pagerins jūsų darbo eigą.

El
10 geriausių „Linux“ distrofijų kūrėjams

Pasirengę pradėti kurti atvirojo kodo operacinę sistemą? Čia pateikiami geriausi „Linux“ distros programavimui.

Skaitykite toliau

Susijusios temos
  • „Linux“
  • „Linux Bash Shell“
  • „Linux“ komandos
Apie autorių
Jordanas Glooras (Paskelbti 32 straipsniai)

Džordanas yra dėstytojas ir žurnalistas, kuris aistringai siekia, kad „Linux“ būtų prieinama ir be streso visiems. Jis turi anglų kalbos bakalaurą ir daiktą karštai arbatai. Šiltuoju metų laiku jis mėgaujasi dviračiais po Ozarko kalvas, kur gyvena.

Daugiau iš Jordan Gloor

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Dar vienas žingsnis…!

Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.

.