Funkce Bash printf: 7 příkladů pro Linux

Funkce Bash printf: 7 příkladů pro Linux

Pokud používáte shell Bash slušnou dobu, pravděpodobně víte, jak tisknout řetězce v terminálu Linux pomocí příkazu echo. Příkaz printf však výrazně usnadňuje tisk textu s konkrétním formátováním.





Dnes se naučíme, jak využít funkci printf, abychom vylepšili naše skriptovací schopnosti Bash.





Co je funkce Bash printf?

Jak název napovídá, printf je funkce, která tiskne formátované řetězce textu. To znamená, že můžete napsat řetězcovou strukturu (formát) a později ji vyplnit hodnotami (argumenty).





Pokud znáte programovací jazyky C/C ++, možná už víte, jak funguje printf. Printf in Bash shell je velmi podobný, ale má několik malých rozdílů.

Další informace: Nejlepší stránky, jak začít s programováním v C ++



Jak používat printf v Bash Shell

Základní syntaxe pro printf je:

printf format [argument]

Printf vytiskne soubor formát řetězec při implementaci netěsnosti ( ) a směrnic ( % ) prostřednictvím použití uvedených argumenty . Všimněte si výstupu následujícího příkazu:





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

Printf převzal svět argument a nahradil %s znak v zadaném řetězci s ním.

Můžete si všimnout, že po výstupu vám Bash nevytvoří nový řádek. Na rozdíl od příkazu echo nebude printf předpokládat, že po vytištění výstupu chcete nový řádek. Proto budete muset použít znak nového řádku n v každém případě.





Chcete -li vytisknout řetězec a poté přejít na nový řádek, zadejte printf 'Ahoj, světe n' .

Hello, world

Je důležité mít na paměti, že printf se pokusí znovu použít formát pro všechny vaše argumenty. Můžete to využít ve svůj prospěch, ale pokud si nedáte pozor, můžete skončit s výsledky jako je tento:

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

Měli byste si také uvědomit, že pokud argument chybí, bude printf interpretovat všechny směrnice jako 0 (pro číslo) a nula (pro řetězec).

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

Nyní, když víte, jak funguje skriptování Bash s printf v Linuxu, jste připraveni jej začít používat ve svých příkazech.

Linux Bash printf Příklady

Printf obsahuje mnoho specifikátorů formátu, které můžete použít ve svých skriptech. Ale dnes budeme pokrývat pouze některé běžné funkce.

1. Formátujte výstup pomocí řetězce

Chcete -li formátovat výstup pomocí řetězců textu, použijte %s směrnice.

$ 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í řetězec s desetinnými místy

Chcete -li formátovat řetězec s celým číslem, můžete použít %d směrnice pro podepsané desetinné místo.

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

Všimněte si toho, že pokud chcete ve výstupu použít desetinné číslo bez znaménka, budete muset použít % u místo toho směrnice.

rozdělit jeden monitor na dva virtuální monitory

Příbuzný: Co znamená 'Bash' v Linuxu?

3. Výstupní matematické funkce pomocí printf

Formátování matematických funkcí pomocí příkazu printf je snadné. Stačí umístit výraz do dvojitých závorek, jak to běžně děláte v Bash, a zadat výraz do seznamu argumentů.

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

4. Formátujte šestnáctková čísla

Pokud potřebujete formátovat šestnáctkové číslo, použijte % X pro malá písmena a % X pro velká písmena.

$ printf %X 1000
3E8C

Chcete -li vytisknout aktuální datum a čas, můžete printf zkombinovat s datum příkaz a předejte následující směrnice.

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

Ve výše uvedeném výstupu můžete vidět specifikátory formátu pro měsíc, den, rok, hodinu, minutu a sekundu.

6. Formátujte řetězce se znaky Unicode

Chcete -li tisknout znaky Unicode pomocí printf, použijte u uniknout pro 16bitový Unicode a U pro 32bitový Unicode.

Můžete například vytisknout soubor autorská práva symbol s následujícím příkazem:

$ printf 'u00A9'
©

7. Přidejte do výstupu mezery

Řetězce můžete formátovat s mezerami tak, že před specifikátorem směrnice definujete minimální počet vytištěných znaků. Nepoužité znaky budou vyplněny mezerami.

Například psaní printf '%s:%5d n' 'Hodnota 1' 25 'Hodnota 2' 120 vydá:

Value 1: 25
Value 2: 120

The %5 d specifikátor formátu ve výstupu označuje, že formátovaný řetězec bude obsahovat minimálně pět znaků. Protože 25 má pouze dvě číslice, jsou zbývající znaky přidány mezery.

Pokud jako šířku zadáte záporné číslo, bude směrnice zarovnána doleva místo doprava.

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

Pokud chcete nastavit proměnnou width, můžete místo čísla předat hvězdičku a printf použije další číslo, které najde v seznamu argumentů.

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

Příbuzný: Vše, co potřebujete vědět o Bash For Loops v Linuxu

Naučte se příkaz Linux printf

Pomocí příkazu printf v pásu nástrojů pro skriptování Bash jste připraveni začít tisknout složité a různé řetězce ve vašem terminálu. Při vývoji skriptů Bash je důležité zajistit, abyste pracovali v co nejproduktivnějším prostředí. To nejen zlepší vaše dovednosti v příkazovém řádku, ale také obecně zlepší váš pracovní postup.

Podíl Podíl tweet E-mailem 10 nejlepších distribucí Linuxu pro vývojáře

Jste připraveni zahájit vývoj na operačním systému s otevřeným zdrojovým kódem? Zde jsou nejlepší distribuce Linuxu pro programování.

jak získat náhradu za Steam hru
Číst dále Související témata
  • Linux
  • Linux Bash Shell
  • Příkazy Linux
O autorovi Jordan Gloor(51 článků zveřejněno)

Jordan je spisovatelem zaměstnanců MUO, který je vášnivý pro to, aby byl Linux dostupný a bez stresu pro každého. Píše také průvodce o soukromí a produktivitě.

Více od Jordan Gloor

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru