Ak používate shell Bash už slušné množstvo času, pravdepodobne viete, ako tlačiť reťazce v termináli Linux pomocou príkazu echo. Príkaz printf však výrazne uľahčuje tlač textu so špecifickým formátovaním.

Dnes sa naučíme, ako využiť funkciu printf na zlepšenie našich skriptovacích schopností Bash.

Čo je funkcia Bash printf?

Ako naznačuje názov, printf je funkcia, ktorá tlačí formátované reťazce textu. To znamená, že môžete napísať štruktúru reťazcov (formát) a neskôr ju vyplniť hodnotami (argumenty).

Ak ovládate programovacie jazyky C / C ++, možno už viete, ako funguje printf. Printf v prostredí Bash je veľmi podobný, má však niekoľko malých rozdielov.

Uč sa viac: Najlepšie stránky, kde môžete začať s programovaním v C ++

Ako používať printf v Bash Shell

Základná syntax pre printf je:

formát printf [argument]

Printf vytlačí formát reťazec pri implementácii uniká (\) a smernice (%) prostredníctvom použitia špecifikovaných argumenty. Poznamenajte si výstup nasledujúceho príkazu:

$ printf „Ahoj,% s“ svet
Ahoj svet

Printf vzal svete argument a nahradil % s znak v zadanom reťazci.

Môžete si všimnúť, že po výstupe pre vás Bash nevytvorí nový riadok. Na rozdiel od príkazu echo nebude printf po vytlačení výstupu predpokladať, že chcete nový riadok. Preto budete musieť použiť znak nového riadku \ n v každom prípade.

Ak chcete vytlačiť reťazec a potom prejsť na nový riadok, zadajte printf "Ahoj, svet \ n".

Ahoj svet

Je dôležité mať na pamäti, že printf sa pokúsi znova použiť formát pre všetky vaše argumenty. Môžete to využiť vo svoj prospech, ale ak nie ste opatrní, môžete skončiť takto:

$ printf "Volám sa% s" Jordan Gloor
Volám sa Jordan Volám sa Gloor

Mali by ste tiež vedieť, že ak chýba argument, printf interpretuje všetky smernice ako 0 (pre číslo) a nulový (pre reťazec).

$ printf "Dobrý deň,% s."
Ahoj, .

Teraz, keď viete, ako funguje skriptovanie Bash s printf v systéme Linux, ste pripravení začať ho používať vo svojich príkazoch.

Linux Bash printf Príklady

Printf obsahuje mnoho špecifikátorov formátu, ktoré môžete použiť vo svojich skriptoch. Ale dnes sa budeme zaoberať iba niektorými bežnými funkciami.

1. Formátovať výstup reťazcom

Na formátovanie výstupu reťazcami textu použite % s smernice.

$ printf "% s je jedným z najväčších online% s." „Technologické publikácie“ MUO
MUO je jednou z najväčších online technologických publikácií.

2. Formátovať výstupný reťazec s desatinnými miestami

Ak chcete naformátovať reťazec s celým číslom, môžete použiť % d smernica na podpísané desatinné miesto.

$ printf "MUO bola založená v% d." 2007
MUO bola založená v roku 2007.

Všimnite si, že ak chcete vo výstupe použiť desatinné miesto bez znamienka, budete musieť použiť znak % u smernice.

Súvisiace: Čo znamená „Bash“ v Linuxe?

3. Výstupné matematické funkcie pomocou printf

Formátovanie matematických funkcií pomocou príkazu printf je jednoduché. Stačí umiestniť svoj výraz do dvojitých zátvoriek, ako to bežne robíte v jazyku Bash, a určiť výraz v zozname argumentov.

$ printf "1 + 1 je% d" $ ((1 + 1))
1 + 1 sú 2

4. Formátujte hexadecimálne čísla

Ak potrebujete naformátovať hexadecimálne číslo, použite %X pre malé písmená a %X pre veľké písmená.

$ printf% X 1 000
3E8C

5. Tlačiť dátum a čas

Ak chcete vytlačiť aktuálny dátum a čas, môžete kombinovať printf s dátum velenie a prijíma nasledujúce smernice.

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

V uvedenom výstupe môžete vidieť špecifikátory formátu pre mesiac, deň, rok, hodinu, minútu a sekundu.

6. Naformátujte reťazce pomocou znakov Unicode

Ak chcete tlačiť znaky Unicode pomocou printf, použite \ u únik pre 16-bitový Unicode a \ U pre 32-bitový Unicode.

Môžete napríklad vytlačiť autorské práva symbol s nasledujúcim príkazom:

$ printf "\ u00A9"
©

7. Pridajte na výstup medzery

Svoje reťazce môžete naformátovať s medzerami tak, že pred špecifikátorom smernice definujete minimálny počet vytlačených znakov. Nepoužité znaky budú vyplnené medzerami.

Napríklad písanie printf "% s:% 5d \ n" "hodnota 1" 25 "hodnota 2" 120 bude výstup:

Hodnota 1:25
Hodnota 2: 120

The % 5d špecifikátor formátu vo výstupe označuje, že formátovaný reťazec bude obsahovať minimálne päť znakov. Pretože 25 má iba dve číslice, k zvyšným znakom sa pridajú medzery.

Ak zadáte záporné číslo ako šírka, smernica sa zarovná doľava namiesto do prava.

$ printf "% -10s:% d" "Kruhy" 25 "škatúľ" 120
Kruhy: 25 políčok: 120

Ak chcete zmeniť šírku na premennú, môžete namiesto čísla vložiť hviezdičku a printf použije ďalšie číslo, ktoré nájde v zozname argumentov.

$ printf "% * s:% d" -10 "Kruhy" 25 -10 "Krabice" 120
Kruhy: 25 políčok: 120

Súvisiace: Všetko, čo potrebujete vedieť o Bash For Loops v Linuxe

Naučte sa príkaz Linux printf

Pomocou príkazu printf vo svojom skriptovom opasku Bash ste pripravení začať tlačiť zložité a rôzne reťazce v termináli. Pri vývoji skriptov Bash je dôležité uistiť sa, že pracujete v čo najproduktívnejšom prostredí. To nielen zlepší vaše schopnosti príkazového riadku, ale celkovo to zlepší aj váš pracovný tok.

Email
10 najlepších linuxových distribúcií pre vývojárov

Ste pripravení zahájiť vývoj v operačnom systéme s otvoreným zdrojom? Tu uvádzame najlepšie linuxové distribúcie pre programovanie.

Prečítajte si Ďalej

Súvisiace témy
  • Linux
  • Linux Bash Shell
  • Príkazy pre Linux
O autorovi
Jordan Gloor (Publikovaných 32 článkov)

Jordan je lektor a novinár, ktorý sa veľmi zaujíma o to, aby bol Linux prístupný a bez stresu pre všetkých. Má BA v angličtine a vec na horúci čaj. Počas teplých období rád jazdí na bicykli po vrchoch Ozarks, kde žije.

Viac od Jordan Gloor

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.