Il comando printf è simile a echo, ma fornisce all'utente un controllo molto maggiore su come viene formattato l'output. È possibile fornire vari caratteri di formato all'interno del testo che si desidera produrre, utilizzando una barra rovesciata (\) per indicare quando vengono utilizzati. Ad esempio:
# printf "Hello.\nWhat's your name?"
stamperà:
Hello. What's your name?
Questo perché \n è il carattere del formato di nuova riga e aggiunge automaticamente una nuova riga ovunque sia posizionata.
Il comando printf supporta anche i caratteri di conversione, che utilizzano un segno di percentuale (%) per indicare quando vengono utilizzati. I caratteri di conversione vengono in genere utilizzati negli
script per modificare l'output di una variabile, ad esempio dettare il numero di cifre decimali da stampare dopo un calcolo preciso.
Se riscontri un errore di seguito durante l'esecuzione del comando printf:
printf: command not found
puoi provare a installare il pacchetto sottostante secondo la tua scelta di distribuzione:
Distribuzione | Comando |
---|---|
OS X | brew install coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
Alpino | apk aggiunge coreutils |
Arci Linux | pacman -S coreutils |
Kali Linux | apt-get install coreutils |
CentOS | yum install coreutils |
Fedora | dnf installa coreutils |
Raspbian | apt-get install coreutils |
Esempi di comando printf
1. Stampa un messaggio di testo:
# printf "%s\n" "Hello world"
2. Stampa un numero intero in grassetto blu:
# printf "\e[1;34m%.3d\e[0m\n" 42
3. Stampa un numero float con il simbolo dell'euro Unicode:
# printf "\u20AC %.2f\n" 123.4
4. Stampa un messaggio di testo composto da variabili d'ambiente:
# printf "var1: %s\tvar2: %s\n" "$VAR1" "$VAR2"
5. Archivia un messaggio formattato in una variabile (non funziona su zsh):
# printf -v myvar "This is %s = %d\n" "a year" 2016