Comando Bash Printf

Comando Bash Printf
Lavorando con Bash Scripting, utilizziamo principalmente il comando "eco" per stampare qualsiasi output, che è conveniente e facile da usare e soddisfa il requisito per la maggior parte del tempo. Ma la semplicità ha una limitazione; Il comando Echo ha una sua limitazione quando si tratta di formattare l'output, in quel caso, "printf"Il comando svolge il suo ruolo.

IL "printf"Il comando in Bash Scripting funziona allo stesso modo"printf ()"Funziona nella lingua C. Questo post si concentrerà su "printf"Comando, la sua sintassi ed esempi che elaborano ulteriormente l'uso di questo comando. Controlliamo la sintassi del "printf"Comando:

printf

: È facoltativo assegnare l'output a una variabile.
: È una stringa che può contenere specificatori di formato diversi come "%s", "%b", "%d", "%f" e backslash escape
: Gli argomenti possono essere qualsiasi valore o variabile

Come utilizzare il comando printf in Bash Scripting usando VIM Editor:

Stiamo usando l'editor VIM per questa guida a causa della sua ricca funzionalità e facilità d'uso. Ottieni VIM sul tuo dispositivo usando:

$ sudo apt install vim

Lancia Editor Vim:

$ vim

Scriviamo un semplice programma per stampare una stringa usando "printf":

#! /Bin/Bash
printf "ciao linuxhint"

Per salvare il file, premere il "Esc"Pulsante per cambiare la modalità e quindi digitare “: W Esempio.sh "e poi"EnteR". Ora apri una nuova finestra e digita:

$ Bash Esempio.sh

Il comando sopra eseguirà lo script il testo di stampa "ciao linuxhint" come mostrato di seguito:

Ora, includiamo alcuni specificatori del formato:

#! /Bin/Bash
printf "%s \ n" "ciao linuxhint"

Nell'esempio sopra, "%s" dice che l'argomento corrispondente dovrebbe essere trattato come stringa e "\ n" per la nuova linea. Allo stesso modo, se usiamo "%d", allora l'argomento verrà trattato come un numero intero:

#! /Bin/Bash
printf "%s \ n" "ciao linuxhint" "impara" "linux"

Tutti e tre gli argomenti saranno trattati come una stringa e stampati in una nuova linea come dimostrato nella seguente uscita:

Un altro esempio è menzionato di seguito per comprendere l'uso del comando "printf":

#! /Bin/Bash
Echo "Inserisci il tuo nome"
Leggi il nome
Echo "Inserisci la tua età"
Leggi l'età
printf "Il tuo nome: %s \ nyour age: %s \ n" "$ name" "$ age"

"Il tuo nome: %s \ n la tua età: %s \ n" è un formato mentre "$ nome" "$ Age" sono gli argomenti. Mentre "%s" punta gli argomenti.

Come utilizzare gli specificatori di conversione con comando printf:

Gli specificatori di conversione sono caratteri utilizzati con il segno "%" per indicare come trattare gli argomenti. Controlliamo l'elenco di alcuni specificatori comunemente usati:

Specificatore DEsscrizione
%% Stampa simbolo "%"
%C Prende argomenti come un singolo personaggio
%E e %E Metti in discussione il numero di punto mobile e le stampe in notazione esponenziale, %e per la lettera minuscola e %E per la lettera maiuscola
%g e %g Metti in discussione il numero di punto mobile e le stampe in notazione normale o esponenziale
%F Prende discussioni come numeri galleggianti
%D Prende argomenti come numeri interi firmati
%u Prende discussioni come numeri interi non firmati
%o Prende discussione come un numero ottale non firmato
%x e %x Prende argomenti come numeri interi esadecimali non firmati

Elaboriamo ulteriormente gli specificatori sopra con un esempio in Bash:

#! /Bin/Bash
Echo "Immettere un numero per convertire"
Leggi il numero
printf "decimale: %d \ noctal: %o \ nhex: %x \ n" "$ numero" "$ numero" "$ numero"

Come utilizzare le direttive flag, larghezza e precisione con comando printf:

Le direttive del flag sono dotate di utilizzo opzionale con il comando "printf". Le direttive della bandiera comunemente usate sono

  • "-" Left Justify l'output
  • "+" Aggiunge il segno "+" con intero
  • "0" aggiunge "0" con un numero invece di spazi

Le direttive di larghezza aggiungono spazio con l'output solitamente utilizzato dopo il flag. Capiamolo con un esempio:

#! /Bin/Bash
Echo "Inserisci il tuo nome"
Leggi il nome
Echo "Inserisci la tua età"
Leggi l'età
printf "Il tuo nome ed età sono: %5s %5d \ n" "$ nome" "età"

"%30s" indica che lo spazio è lungo 30 caratteri e per allineare il modulo di uscita a sinistra, utilizzare il segno "-%-30s".

La direttiva di precisione è composta dal punto "."Seguendo il numero intero positivo:

#! /Bin/Bash
printf “%.2f ”2.56473

L'output sarebbe:

Se il numero è un numero intero, la direttiva di precisione aggiungerà "0" prima del numero. Se il numero è di tipo a punto mobile, la direttiva di precisione specificherà il numero di cifre positive dopo il punto decimale. Per la stringa, specifica il numero di caratteri da visualizzare:

#! /Bin/Bash
printf “%.2f \ n "2.468936
printf “%.3d \ n "10
printf “%.3S \ n "" Samlinux "

Parametri sfuggiti alla backslash:

I parametri di escape di Backslash, chiamati anche sequenze di escape, vengono utilizzati con una retroscena per formattare la stringa con il comando "printf". Queste sequenze non si rappresentano ma interpretano in alcuni altri personaggi. Alcune sequenze di fuga comunemente usate sono:

Carattere Descrizione
\\ Stampa carattere di retroscena
\B Stampa carattere backspace
\N Stampa l'output in una nuova linea
\R Stampa un ritorno a carrello (cursore all'inizio della linea)
\T Dà spazio a destra
\ v Dà spazio a scheda

Conclusione:

Quando si tratta di stampare qualcosa negli script bash, il comando "eco" è più comunemente usato perché è facile da usare e ricorda. Ma il comando "Echo" ha la sua limitazione. Pertanto, per formattare correttamente l'output, il "Printf" il comando può essere usato. IL "Printf" Il comando viene fornito con molte opzioni per formattare l'output di stringhe e persino le conversioni e la formattazione dei numeri di base. Questa guida comprende a fondo la funzionalità del comando "printf" negli script bash con esempi.