Příkaz printf je podobný příkazu echo, ale poskytuje uživateli mnohem větší kontrolu nad tím, jak je výstup formátován. Do textu, který chcete vytisknout, můžete zadat znaky různého formátu pomocí zpětného lomítka (\), které označují, kdy se používají. Například:
# printf "Hello.\nWhat's your name?"
vytiskne:
Hello. What's your name?
Je to proto, že \n je znak formátu nového řádku a automaticky přidá nový řádek, kamkoli je umístěn.
Příkaz printf také podporuje převodní znaky, které používají znak procenta (%) k označení, kdy jsou používány. Konverzní znaky se obvykle používají ve
skriptech ke změně výstupu proměnné, jako je diktování počtu desetinných míst, která se mají vytisknout po přesném výpočtu.
Pokud při spuštění příkazu printf narazíte na níže uvedenou chybu:
printf: command not found
můžete zkusit nainstalovat níže uvedený balíček podle vaší volby distribuce:
Distribuce | Příkaz |
---|---|
OS X | brew install coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
Alpine | apk add coreutils |
Arch Linux | pacman -S coreutils |
Kali Linux | apt-get install coreutils |
CentOS | yum install coreutils |
Fedora | dnf install coreutils |
Raspbian | apt-get install coreutils |
Příklady příkazů printf
1. Vytiskněte textovou zprávu:
# printf "%s\n" "Hello world"
2. Vytiskněte celé číslo tučně modrým písmem:
# printf "\e[1;34m%.3d\e[0m\n" 42
3. Vytiskněte plovoucí číslo se znakem Unicode Euro:
# printf "\u20AC %.2f\n" 123.4
4. Vytiskněte textovou zprávu složenou z proměnných prostředí:
# printf "var1: %s\tvar2: %s\n" "$VAR1" "$VAR2"
5. Uložte naformátovanou zprávu do proměnné (nefunguje na zsh):
# printf -v myvar "This is %s = %d\n" "a year" 2016