Programování BASH

Příkaz Bash Printf

Příkaz Bash Printf
Při práci s bash skriptováním většinou používáme příkaz „echo“ k tisku jakéhokoli výstupu, což je pohodlné a snadno použitelné a většinu času splňuje požadavek. Ale jednoduchost přichází s omezením; Příkaz echo má své vlastní omezení, pokud jde o formátování výstupu, v tom případě, “printf”Příkaz hraje svoji roli.

printf„Příkaz v bash skriptování funguje stejně“printf ()”Pracuje v jazyce C. Tento příspěvek se zaměří na „printf”Příkaz, jeho syntaxe a příklady, které dále rozvádějí použití tohoto příkazu. Pojďme zkontrolovat syntaxi „printf”Příkaz:

printf

: Přiřadit výstup proměnné je volitelné.
: Jedná se o řetězec, který může obsahovat různé specifikátory formátu, například „% s“, „% b“, „% d“, „% f“ a zpětné lomítko
: Argumenty mohou být libovolné hodnoty nebo proměnné

Jak používat příkaz printf v bash skriptování pomocí editoru Vim:

V této příručce používáme editor Vim kvůli jeho bohaté funkčnosti a snadnému použití. Získejte Vim do svého zařízení pomocí:

$ sudo apt install vim

Spusťte editor vim:

$ vim

Napíšeme jednoduchý program pro tisk řetězce pomocí „printf“:

#! / bin / bash
printf „Ahoj Linuxhint“

Chcete-li soubor uložit, stiskněteEsc”Přepnete režim a poté zadáte „: Příklad.sh “a pak„Enter “. Nyní otevřete nové okno terminálu a zadejte:

$ bash příklad.sh

Výše uvedený příkaz provede skript a vytiskne text „ahoj linuxhint“, jak je uvedeno níže:

Nyní zahrňme některé specifikátory formátu:

#! / bin / bash
printf “% s \ n” “Ahoj Linuxhint”

Ve výše uvedeném příkladu „% s“ říká, že s odpovídajícím argumentem by mělo být zacházeno jako s řetězcem a „\ n“ pro nový řádek. Podobně, použijeme-li „% d“, bude argument považován za celé číslo:

#! / bin / bash
printf “% s \ n” “Hello Linuxhint” “Další informace o” “Linuxu”

Všechny tři argumenty budou považovány za řetězec a vytištěny v novém řádku, jak ukazuje následující výstup:

Níže je uveden další příklad, abychom pochopili použití příkazu „printf“:

#! / bin / bash
echo „Zadejte své jméno“
číst jméno
echo „Zadejte svůj věk“
číst věk
printf „Vaše jméno:% s \ nVěk:% s \ n“ „$ name“ „$ age“

„Vaše jméno:% s \ n Váš věk:% s \ n“ je formát, zatímco „$ name“ „$ Age“ jsou argumenty. Zatímco „% s“ ukazuje na argumenty.

Jak používat specifikátory převodu pomocí příkazu printf:

Specifikátory převodu jsou znaky používané se znaménkem „%“ k označení, jak zacházet s argumenty. Podívejme se na seznam některých běžně používaných specifikátorů:

Specifikátor Dpředpis
%% Vytiskne symbol „%“
%C Bere argumenty jako jeden znak
% e a% E Vezměte argument v čísle s plovoucí desetinnou čárkou a vytiskne exponenciální notaci, %E pro malá písmena a %E pro velké písmeno
% g a% G Vezměte argument v čísle s plovoucí desetinnou čárkou a tiskne v normální nebo exponenciální notaci
%F Argument bere jako plovoucí čísla
% d Vezme argumenty jako celá čísla se znaménkem
% u Bere argument jako celá čísla bez znaménka
Bere argument jako osmičkové číslo bez znaménka
% x a% X Vezme argumenty jako hexadecimální celá čísla bez znaménka

Pojďme dále zpracovat výše uvedené specifikátory s příkladem v bash:

#! / bin / bash
echo „Zadejte číslo, které chcete převést“
číst číslo
printf „Desetinné:% d \ nOktální:% o \ nHex:% X \ n“ „$ number“ „$ number“ „$ number“

Jak používat direktivy Flag, Width a Precision s příkazem printf:

Direktivy příznaků přicházejí s volitelným použitím s příkazem „printf“. Běžně používané direktivy příznaků jsou

  • „-“ Levé zarovnání výstupu
  • „+“ Přidá znak „+“ s celým číslem
  • „0“ Přidá „0“ s číslem místo mezer

Direktivy šířky přidávají prostor s výstupem obvykle používaným za příznakem. Pochopme to na příkladu:

#! / bin / bash
echo „Zadejte své jméno“
číst jméno
echo „Zadejte svůj věk“
číst věk
printf „Vaše jméno a věk jsou:% 5s% 5d \ n“ „$ name“ „věk“

„% 30s“ znamená, že prostor je dlouhý 30 znaků, a pro zarovnání výstupního formuláře vlevo použijte znak „-“ „% -30s“.

Směrnice přesnosti se skládá z tečky „.„Následující kladným celým číslem:

#! / bin / bash
printf „%.2f “2.56473

Výstup by byl:

Pokud je číslo celé číslo, směrnice přesnosti přidá před číslo „0“. Pokud je číslo typu s plovoucí desetinnou čárkou, pak směrnice přesnosti určí počet kladných číslic za desetinnou čárkou. U řetězce určuje počet znaků, které se mají zobrazit:

#! / bin / bash
printf „%.2f \ n “2.468936
printf „%.3d \ n “10
printf „%.3 s \ n „„ samlinux “

Parametry zpětného lomítka:

Parametry úniku zpětného lomítka, nazývané také únikové sekvence, se používají jako zpětné lomítko k formátování řetězce pomocí příkazu „printf“. Tyto sekvence nepředstavují samy sebe, ale interpretují je v některých dalších znacích. Některé běžně používané únikové sekvence jsou:

Charakter Popis
\\ Vytiskne znak zpětného lomítka
\ b Vytiskne znak backspace
\ n Vytiskne výstup do nového řádku
\ r Vytiskne návrat na začátek řádku (kurzor na začátku řádku)
\ t Poskytuje prostor na kartě zprava
\proti Poskytuje prostor na kartě

Závěr:

Pokud jde o tisk něčeho ve skriptu bash, nejčastěji se používá příkaz „echo“, protože se snadno používá a pamatuje si. Příkaz „echo“ má ale svá omezení. Proto pro správné formátování výstupu použijte „Printf“ lze použít příkaz. The „Printf“ příkaz přichází se spoustou možností formátování výstupu řetězce a dokonce i převodů a formátování základních čísel. Tato příručka důkladně rozumí funkcím příkazu „printf“ v bash skriptování s příklady.

Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...
Jak změnit velikost, barvu a schéma kurzoru myši a kurzoru v systému Windows 10
Ukazatel myši a kurzor ve Windows 10 jsou velmi důležité aspekty operačního systému. To lze říci i pro jiné operační systémy, takže ve skutečnosti nej...
Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...