Bash printf Funkcija: 7 „Linux“ pavyzdžiai

Bash printf Funkcija: 7 „Linux“ pavyzdžiai

Jei „Bash“ apvalkalą naudojate pakankamai ilgai, tikriausiai žinote, kaip spausdinti eilutes „Linux“ terminale naudojant komandą „echo“. Tačiau spausdinimo komanda žymiai palengvina teksto spausdinimą naudojant tam tikrą formatą.





Šiandien mes išmoksime naudotis „printf“ funkcija, kad patobulintume „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 užpildyti ją reikšmėmis (argumentais).



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

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



Kaip naudoti „printf“ „Bash Shell“

Pagrindinė „printf“ sintaksė yra tokia:

printf format [argument]

„Printf“ atspausdins formatu eilutė įgyvendinant nutekėjimai ( ) ir direktyvas ( % ) naudojant nurodytą argumentai . Atkreipkite dėmesį į šios komandos išvestį:





$ printf 'Hello, %s' world
Hello, world

„Printf“ paėmė pasaulis argumentas ir pakeistas %s simbolis nurodytoje eilutėje su juo.

Galite pastebėti, kad po išvesties „Bash“ nesukuria jums naujos eilutės. Skirtingai nuo komandos echo, printf nemano, kad norite naujos eilutės po to, kai bus išspausdinta išvestis. Taigi turėsite naudoti naują eilutės simbolį n kiekvienu atveju.





Norėdami atspausdinti eilutę ir pereiti prie naujos eilutės, įveskite printf 'Sveiki, pasauli n' .

Hello, world

Svarbu nepamiršti, kad „printf“ bandys pakartotinai naudoti visų jūsų argumentų formatą. Galite tai panaudoti savo naudai, tačiau jei nesate atsargūs, galite pasiekti tokius rezultatus:

$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

Taip pat turėtumėte žinoti, kad jei trūksta argumento, printf interpretuos visas direktyvas taip 0 (skaičiui) ir nulis (už stygą).

$ printf 'Hello, %s.'
Hello, .

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

„Linux Bash printf“ pavyzdžiai

„Printf“ turi daug formatų nurodymų, kuriuos galite naudoti savo scenarijuose. Tačiau šiandien mes apimsime tik kai kuriuos įprastus šios funkcijos aspektus.

1. Formatuokite išvestį su eilute

Norėdami suformatuoti išvestį teksto eilutėmis, naudokite %s direktyva.

$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.

2. Formatuokite išvesties eilutę su kableliais

Norėdami formatuoti eilutę su sveiku skaičiumi, galite naudoti %d pasirašytą dešimtainį ženklą.

$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.

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

„Amazon“ užsakymas sako, kad pristatytas, bet ne čia

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

3. Išvesties matematikos funkcijos Printf naudojimas

Suformatuoti matematines funkcijas naudojant komandą printf yra paprasta. 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 is %d' $((1+1))
1 + 1 is 2

4. Formatuokite šešioliktainius skaičius

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

$ printf %X 1000
3E8C

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

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

Pirmiau minėtame išėjime galite pamatyti mėnesio, dienos, metų, valandos, minutės ir sekundės formatų nurodymus.

6. Formatuokite eilutes su Unicode simboliais

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

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

$ printf 'u00A9'
©

7. Pridėkite tarpą prie išvesties

Galite formatuoti eilutes naudodami tarpus, prieš direktyvos nurodymą nustatydami minimalų spausdinamų simbolių skaičių. Nepanaudoti simboliai bus užpildyti tarpais.

Pavyzdžiui, rašyti printf '%s:%5d n' 'Vertė 1' 25 'Vertė 2' 120 išves:

Value 1: 25
Value 2: 120

The %5d formato specifikacija išvestyje reiškia, kad suformatuotoje eilutėje bus mažiausiai penki simboliai. Kadangi 25 turi tik du skaitmenis, likusiems simboliams pridedami tarpai.

Jei nurodysite neigiamą skaičių kaip plotį, direktyva bus pagrįsta kairiąja, o ne dešine.

$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120

Jei norite, kad plotis būtų kintamas, vietoj skaičiaus galite praleisti žvaigždutę, o „printf“ naudos kitą argumentų sąraše rastą skaičių.

$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120

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

„Linux printf“ komandos mokymasis

Naudodami komandą „printf“ savo „Bash“ scenarijų įrankių juostoje, esate 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ą.

Dalintis Dalintis „Tweet“ Paštu 10 geriausių „Linux“ platintojų kūrėjams

Pasiruošę pradėti kurti atvirojo kodo operacinėje sistemoje? Čia yra geriausi „Linux“ distribucijos programavimui.

mano telefone nuolat rodomi iššokantys langai
Skaityti toliau Susijusios temos
  • Linux
  • „Linux Bash Shell“
  • „Linux“ komandos
Apie autorių Jordanas Glooras(Paskelbti 51 straipsniai)

Jordanas yra personalo rašytojas MUO, kuris aistringai siekia, kad „Linux“ būtų prieinama ir be streso visiems. Jis taip pat rašo privatumo ir produktyvumo vadovus.

Daugiau iš Jordan Gloor

Prenumeruokite mūsų naujienlaiškį

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

Norėdami užsiprenumeruoti, spustelėkite čia