Qual è la differenza tra printf ed eco in bash?

Qual è la differenza tra printf ed eco in bash?
Potremmo voler organizzare il risultato di un'operazione Ubuntu in modo specifico. Forse dovremmo evitare i risultati gonfiati e presentare informazioni in uno stile conciso. Sono inoltre costruiti i comandi che eco e printf. Printf prevede la creazione di una stringa di formattazione e offre uno stato di abbandono diverso da zero quando fallisce. Mentre l'eco normalmente parte con uno stato 0 e in genere emette gli ingressi guidati dalla fine del carattere di linea su questo risultato standard. La "printf" offre più opzioni per il formato di output rispetto al "eco". Durante questa breve lezione, esamineremo come modellare i risultati del terminale usando le istruzioni Echo e Printf su Ubuntu 20.04 Sistema Linux.

Esempio 01:

Per enfatizzare e vedere il funzionamento delle dichiarazioni printf ed eco, facciamo il nostro primo esempio semplice e facile da fare. Devi aprire l'applicazione della console per farlo. Per questo, usa il "ctrl+alt+t" sullo schermo desktop di Ubuntu 20.04 Sistema operativo Linux. L'applicazione della console sarà aperta tra qualche momento e per questo, non devi aspettare molto. Dopo l'apertura del terminale, eseguiremo le dichiarazioni "printf" ed "eco" separatamente per vedere come funzionano correttamente. Quindi, abbiamo provato prima "printf" sulla shell per stampare il numero di caratteri in una stringa "Linux" sulla nostra shell.

Il comando è stato usato con il flag "-m" insieme alla parola chiave "WC". Il comando è stato elencato nell'immagine qui sotto. Dopo aver eseguito questo comando premendo il tasto "Invio", ne abbiamo ottenuto 5 di conseguenza. Ciò significa che la "printf" contiene solo 5 lettere. Poiché la stampa è un'affermazione standard, ecco perché visualizzerebbe gli argomenti in una forma formattata standard mentre è in controllo.

$ printf 'Linux' | wc -m

Diamo un'occhiata alla dichiarazione "Echo" ora. Quindi, la sintassi complessiva per il comando sarà la stessa, ma l'istruzione "eco" verrà utilizzata al posto di "printf" qui. La stringa fornita nel comando è anche la stessa. Quando eseguiamo il comando sulla console, visualizza il numero 6 di conseguenza. Perché ciò accade quando una stringa contiene solo 5 caratteri? Questo perché la dichiarazione "eco" conta anche la "linea newline" come il suo carattere secondo il manuale standard "Echo" Bash "Echo". Se aggiungiamo un po 'di spazio prima o dopo la stringa, lo prenderà anche come personaggio.

$ echo 'Linux' | wc -m

Esempio 02: usando printf

Vediamo prima il funzionamento della dichiarazione "printf" nel nostro nuovo esempio. Crea un nuovo file bash "Test.sh "con l'utilizzo di un comando nano touch seguito dal comando" nano "nella shell. Il comando nano verrà utilizzato per aprire il file all'interno di un editor "nano". Dopo l'apertura del file, abbiamo aggiunto prima l'estensione bash alla prima riga di un file. La variabile "STR" è stata inizializzata con un valore di stringa lungo in esso. Abbiamo dichiarato una variabile integrata "IFS" per utilizzare lo spazio come valore delimitatore.

Quindi abbiamo usato il comando "leggi" nella riga successiva per leggere i valori di una variabile stringa come array e salvarlo nella variabile "arr". La bandiera "-ra" è stata usata qui per questo scopo in particolare. Dopo questo, l'istruzione Echo viene utilizzata qui per farci conoscere la dimensione di una variabile di array "ARR". Il ciclo "per" è stato inizializzato per iterare ogni parola da una variabile stringa e visualizzarla sulla shell usando l'istruzione "printf". Come sappiamo che la stampa non prende la riga successiva come il suo carattere successivo automaticamente, quindi abbiamo usato il carattere "\ n" all'interno dell'istruzione printf per farlo. Il ciclo termina qui e il codice verrà salvato con l'aiuto di una chiave di scelta rapida "Ctrl+S".

Per vedere i risultati dell'istruzione printf, eseguire il file con il comando "bash" per farlo funzionare. L'uscita visualizza la dimensione di un array, i.e., 9. Successivamente, ogni parola di una stringa è stata iterata usando il ciclo "per" e visualizzata sul terminale separatamente ad ogni riga successiva. Questo è stato fatto usando la clausola "\ n" nella clausola "printf". Altrimenti, potrebbe non essere successo.

$ Bash Test.sh

Esempio 03: Utilizzo dell'eco

All'interno di questo nuovo esempio, illustreremo il funzionamento della dichiarazione "eco" nello script bash. Quindi, abbiamo aperto lo stesso "test.sh "trova con l'aiuto di un comando" nano "nella console shell. Il file è aperto nel nano editor. Tutto il codice è rimasto invariato, io.e., Supporto bash, stringa "STR", variabile IFS, istruzioni di lettura e loop "per". L'unica modifica che devi fare è: sostituire la parola "printf" con la parola chiave "echo" nello script bash.

Puoi vedere che abbiamo anche aggiunto "\ n" all'interno della dichiarazione "eco" per ottenere la nuova riga. Come tutti sappiamo che la dichiarazione "Echo" considera sempre la nuova linea come un carattere aggiuntivo; Pertanto, non formatterà l'output come tale.

Eseguiamo il codice per vedere i risultati. Invece di creare un divario di 1 nuova linea, l'istruzione Echo considera il "\ n" come un carattere aggiuntivo. Pertanto, l'output sembra qualcosa di seguito.

$ Bash Test.sh

Aggiorniamo il codice per ottenere i risultati richiesti. Quindi, dopo aver aperto il file, abbiamo rimosso il carattere "\ n" dalla stringa di istruzione Echo. Salvato il codice e lasciato il file.

Dopo aver eseguito il codice aggiornato questa volta, abbiamo di nuovo la dimensione di un array di stringhe come "9". Dopodiché, tutte le parole di un array sono state visualizzate separatamente, ciascuna sulla riga successiva.

$ Bash Test.sh

Conclusione:

Questa guida contiene più di un esempio per illustrare la funzionalità e la differenza delle dichiarazioni "printf" ed "eco". Preferisci l'uso dell'istruzione "Printf" all'interno di Bash perché è più standardizzato mentre "Echo" comporta i poli a parte su altre piattaforme.