Funkcia Bash printf: 7 Príklady pre Linux

Funkcia Bash printf: 7 Príklady pre Linux

Ak používate shell Bash slušnú dobu, 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 používať 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ť reťazcovú štruktúru (formát) a neskôr ju vyplniť hodnotami (argumenty).





Ak poznáte programovacie jazyky C/C ++, možno už viete, ako funguje printf. Printf in Bash shell je veľmi podobný, ale má niekoľko malých rozdielov.

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



Ako používať printf v Bash Shell

Základná syntax pre printf je:

printf format [argument]

Printf vytlačí súbor formát reťazec pri implementácii úniky ( ) a smerníc ( % ) prostredníctvom použitia uvedeného argumenty . Všimnite si výstupu nasledujúceho príkazu:





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

Printf prevzal svet argument a nahradil %s znak v uvedenom reťazci s ním.

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ť nový riadkový znak n v každom prípade.





Ak chcete vytlačiť reťazec a potom sa presunúť na nový riadok, napíšte printf 'Ahoj, svet n' .

Hello, world

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 si nedáte pozor, môžete skončiť s takýmito výsledkami:

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

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

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

Teraz, keď viete, ako funguje skriptovanie Bash s printf v systéme Linux, ste pripravení ho začať 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 budeme pokrývať iba niektoré bežné funkcie.

1. Formátujte výstup pomocou reťazca

Ak chcete výstup formátovať pomocou textových reťazcov, použite príponu %s smernice.

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

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

Na formátovanie reťazca s celým číslom môžete použiť %d smernica pre podpísané desatinné miesto.

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

Upozorňujeme, že ak chcete vo výstupe použiť desatinnú čiarku bez znamienka, budete musieť použiť príponu % u smernice.

môžu Windows čítať mac os rozšírené

Súvisiace: Čo znamená „Bash“ v systéme Linux?

3. Výstupné matematické funkcie pomocou printf

Formátovanie matematických funkcií pomocou príkazu printf je jednoduché. Jednoducho vložte výraz do dvojitých zátvoriek, ako to bežne robíte v Bash, a zadajte výraz do zoznamu argumentov.

$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2

4. Formátujte šestnástkové čísla

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

$ printf %X 1000
3E8C

Ak chcete vytlačiť aktuálny dátum a čas, môžete kombinovať printf s dátum ovládať a odovzdať nasledujúce smernice.

$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%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. Formátujte reťazce so znakmi Unicode

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

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

$ printf 'u00A9'
©

7. Pridajte do výstupu medzery

Reťazce môžete formátovať s medzierami 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 vydá:

Value 1: 25
Value 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 pridávajú medzery.

Ak ako šírku zadáte záporné číslo, smernica bude zarovnaná doľava a nie doprava.

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

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

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

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

Naučte sa príkaz Linux printf

S príkazom printf na páse so skriptovacím nástrojom Bash ste pripravení začať tlačiť komplexné a rôzne reťazce vo svojom termináli. Pri vývoji skriptov Bash je dôležité zabezpečiť, aby ste pracovali v čo najproduktívnejšom prostredí. To nielenže zlepší vaše schopnosti v príkazovom riadku, ale tiež celkovo zlepší váš pracovný tok.

zdieľam zdieľam Tweet E -mail 10 najlepších distribúcií Linuxu pre vývojárov

Ste pripravení začať vývoj v operačnom systéme s otvoreným zdrojovým kódom? Tu sú najlepšie distribúcie Linuxu na programovanie.

ako rozoznám, že ťa zablokovali na facebooku
Čítajte ďalej Súvisiace témy
  • Linux
  • Linux Bash Shell
  • Príkazy Linux
O autorovi Jordan Gloor(51 publikovaných článkov)

Jordan je tímový spisovateľ v spoločnosti MUO, ktorý je nadšený pre to, aby bol Linux dostupný a bez stresu pre každého. Píše tiež príručky o súkromí a produktivite.

Viac od Jordan Gloora

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber