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
5. Spausdinkite datą ir laiką
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ėjamsPasiruošę pradėti kurti atvirojo kodo operacinėje sistemoje? Čia yra geriausi „Linux“ distribucijos programavimui.
mano telefone nuolat rodomi iššokantys langaiSkaityti toliau Susijusios temos
- Linux
- „Linux Bash Shell“
- „Linux“ komandos
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 GloorPrenumeruokite 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