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
5. Vytlačte dátum a čas
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árovSte 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
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 Glooraprihlá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