Funzione Bash printf: 7 esempi per Linux

Funzione Bash printf: 7 esempi per Linux

Se stai usando la shell Bash da un discreto periodo di tempo, probabilmente sai come stampare le stringhe nel terminale Linux usando il comando echo. Il comando printf, tuttavia, rende molto più semplice la stampa di testo con una formattazione specifica.





Oggi impareremo come utilizzare la funzione printf per migliorare le nostre capacità di scripting Bash.





Che cos'è la funzione printf di Bash?

Come suggerisce il nome, printf è una funzione che stampa stringhe di testo formattate. Ciò significa che puoi scrivere una struttura di stringa (il formato) e successivamente riempirla con i valori (gli argomenti).





Se hai familiarità con i linguaggi di programmazione C/C++, potresti già sapere come funziona printf. Printf nella shell Bash è molto simile, ma presenta alcune piccole differenze.

Per saperne di più: I migliori siti per iniziare con la programmazione C++



Come usare printf nella shell Bash

La sintassi di base per printf è:

printf format [argument]

Printf stamperà il formato stringa durante l'implementazione perdite ( ) e direttive ( % ) attraverso l'uso di specificati argomenti . Nota l'output del seguente comando:





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

Printf ha preso il mondo argomento e sostituito il %S carattere nella stringa specificata con esso.

Potresti notare che dopo l'output, Bash non crea una nuova riga per te. A differenza del comando echo, printf non presumerà che tu voglia una nuova riga dopo che l'output è stato stampato. Quindi, dovrai usare il nuovo carattere di linea in ogni caso.





Per stampare una stringa e poi passare a una nuova riga, digita printf 'Ciao, mondo ' .

Hello, world

È importante tenere a mente che printf tenterà di riutilizzare il formato per tutti i tuoi argomenti. Puoi usarlo a tuo vantaggio, ma se non stai attento, puoi finire con risultati come questo:

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

Dovresti anche essere consapevole che se manca un argomento, printf interpreterà qualsiasi direttiva come 0 (per un numero) e nullo (per una stringa).

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

Ora che sai come funziona lo scripting Bash con printf in Linux, sei pronto per iniziare a usarlo nei tuoi comandi.

Linux Bash printf Esempi

Printf presenta molti identificatori di formato che puoi usare nei tuoi script. Ma oggi tratteremo solo alcuni di quelli comuni per la funzione.

1. Formatta l'output con una stringa

Per formattare l'output con stringhe di testo, utilizzare il pulsante %S direttiva.

$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.

2. Formatta la stringa di output con i decimali

Per formattare una stringa con un numero intero, puoi usare il pulsante %D direttiva per un decimale con segno.

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

Nota che se vuoi usare un decimale senza segno nell'output, dovrai usare il % u direttiva invece.

come controllare la cronologia delle attività del computer Windows 10

Imparentato: Cosa significa 'Bash' in Linux?

3. Funzioni matematiche di output utilizzando printf

La formattazione delle funzioni matematiche con il comando printf è facile. Posiziona la tua espressione all'interno delle doppie parentesi come fai normalmente in Bash e specifica l'espressione nell'elenco degli argomenti.

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

4. Formatta numeri esadecimali

Se hai bisogno di formattare un numero esadecimale, usa % X per minuscolo e % X per maiuscolo.

$ printf %X 1000
3E8C

Per stampare la data e l'ora correnti, puoi combinare printf con il tasto Data comando e passare le seguenti direttive.

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

Puoi vedere gli identificatori di formato per mese, giorno, anno, ora, minuto e secondo nell'output di cui sopra.

6. Formattare le stringhe con caratteri Unicode

Per stampare caratteri Unicode con printf, usa il tasto u escape per Unicode a 16 bit e U per Unicode a 32 bit.

Ad esempio, puoi stampare il diritto d'autore simbolo con il seguente comando:

$ printf 'u00A9'
©

7. Aggiungi spaziatura all'output

Puoi formattare le tue stringhe con spaziatura definendo, prima dell'identificatore di direttiva, un numero minimo di caratteri stampati. I caratteri non utilizzati verranno riempiti con spazi.

Ad esempio, digitando printf '%s:%5d ' 'Valore 1' 25 'Valore 2' 120 produrrà:

Value 1: 25
Value 2: 120

Il %5 D L'identificatore di formato nell'output indica che la stringa formattata conterrà un minimo di cinque caratteri. Poiché 25 ha solo due cifre, ai caratteri rimanenti vengono aggiunti degli spazi.

Se si passa un numero negativo come larghezza, la direttiva sarà giustificata a sinistra anziché a destra.

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

Se vuoi rendere variabile la larghezza, puoi passare un asterisco invece di un numero e printf utilizzerà il numero successivo che trova nell'elenco degli argomenti.

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

Imparentato: Tutto quello che devi sapere su Bash For Loops in Linux

Imparare il comando printf di Linux

Con il comando printf nella tua cintura di utilità di scripting Bash, sei pronto per iniziare a stampare stringhe complesse e variabili nel tuo terminale. Mentre sviluppi i tuoi script Bash, è importante assicurarti di lavorare nell'ambiente più produttivo possibile. Ciò non solo migliorerà le tue abilità da riga di comando, ma migliorerà anche il tuo flusso di lavoro in generale.

Condividere Condividere Tweet E-mail 10 migliori distribuzioni Linux per sviluppatori

Pronto per iniziare lo sviluppo su un sistema operativo open source? Ecco le migliori distribuzioni Linux per la programmazione.

come resettare un google home mini
Leggi Avanti Argomenti correlati
  • Linux
  • Linux Bash Shell
  • Comandi Linux
Circa l'autore Giordano Gloor(51 articoli pubblicati)

Jordan è uno scrittore dello staff di MUO che è appassionato di rendere Linux accessibile e senza stress per tutti. Scrive anche guide sulla privacy e sulla produttività.

Altro da Jordan Gloor

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti