Se stai usando la shell Bash per 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.

Cos'è la funzione Bash printf?

Come suggerisce il nome, printf è una funzione che stampa stringhe di testo formattate. Ciò significa che puoi scrivere una struttura stringa (il formato) e successivamente riempirla con 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 in Bash Shell

La sintassi di base per printf è:

formato printf [argomento]

Printf stamperà il file formato stringa durante l'implementazione

instagram viewer
scappa (\) e direttive (%) attraverso l'uso di specificato argomenti. Notare l'output del seguente comando:

$ printf "Hello,% s" world
Ciao mondo

Printf ha preso il mondo argomento e ha sostituito il file %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 presume che tu voglia una nuova riga dopo che l'output è stato stampato. Pertanto, dovrai utilizzare il nuovo carattere di linea \ n in ogni caso.

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

Ciao mondo

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

$ printf "Il mio nome è% s" Jordan Gloor
Il mio nome è Jordan, mi chiamo 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 "Ciao,% s."
Ciao, .

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

Esempi di printf di Linux Bash

Printf presenta molti specificatori 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 l'estensione %S direttiva.

$ printf "% s è uno dei più grandi% s online." MUO "pubblicazioni tecnologiche"
MUO è una delle più grandi pubblicazioni di tecnologia online.

2. Formato stringa di output con decimali

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

$ printf "MUO è stato fondato in% d." 2007
MUO è stata fondata nel 2007.

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

Relazionato: Cosa significa "Bash" in Linux?

3. Funzioni matematiche di output utilizzando printf

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

$ printf "1 + 1 è% d" $ ((1 + 1))
1 + 1 fa 2

4. Formato numeri esadecimali

Se è necessario formattare un numero esadecimale, utilizzare %X per lettere minuscole e %X per le maiuscole.

$ printf% X 1000
3E8C

5. Stampa data e ora

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

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

È possibile visualizzare 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 \ u escape per Unicode a 16 bit e \ U per Unicode a 32 bit.

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

$ printf "\ u00A9"
©

7. Aggiungi spaziatura all'output

È possibile formattare le stringhe con la spaziatura definendo, prima dello specificatore di direttiva, un numero minimo di caratteri stampati. I caratteri non utilizzati verranno riempiti con spazi.

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

Valore 1:25
Valore 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, gli spazi vengono aggiunti ai caratteri rimanenti.

Se passi un numero negativo come larghezza, la direttiva sarà giustificata a sinistra invece che a destra.

$ printf "% -10s:% d" "Cerchi" 25 "Riquadri" 120
Cerchi: 25 Scatole: 120

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

$ printf "% * s:% d" -10 "Cerchi" 25-10 "Riquadri" 120
Cerchi: 25 Scatole: 120

Relazionato: Tutto ciò che devi sapere su Bash For Loops in Linux

Apprendimento del comando printf di Linux

Con il comando printf nella cintura dell'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 capacità di riga di comando, ma migliorerà anche il tuo flusso di lavoro in generale.

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.

Leggi Avanti

Argomenti correlati
  • Linux
  • Linux Bash Shell
  • Comandi Linux
Circa l'autore
Jordan Gloor (32 articoli pubblicati)

Jordan è un tutor e giornalista appassionato di rendere Linux accessibile e senza stress per tutti. Ha una laurea in inglese e un debole per il tè caldo. Durante le stagioni calde, ama andare in bicicletta sulle colline degli Ozarks dove vive.

Altro di Jordan Gloor

Iscriviti alla nostra Newsletter

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

Ancora un passo…!

Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.

.