Comando bash 'set -x'

Comando bash 'set -x'

Bash impostato Il comando viene utilizzato per molti scopi in bash e ha molte opzioni per abilitare o disabilitare diversi tipi di funzionalità dell'ambiente con shell. IL -X L'opzione è una delle opzioni del comando set che viene utilizzato per abilitare la funzione di debug dello script bash per la risoluzione dei problemi. IL 'Set -x'Il comando può essere utilizzato dal terminale o all'interno di qualsiasi script bash. Scopi diversi per l'utilizzo del 'Set -x'Il comando è stato descritto in questo tutorial.

Abilita il debug

Se lo script non mostra l'output corretto o l'output imprevisto, questo problema può essere risolto utilizzando il debug. La funzione di debug può essere abilitata in diversi modi nello script bash che sono menzionati di seguito.

La funzione di debug può essere abilitata utilizzando il comando 'set -x' nel terminale o all'interno dello script bash utilizzando il comando 'set -x'. L'uso del comando "set -x" è stato mostrato nella parte successiva del tutorial.
La funzione di debug può anche essere abilitata utilizzando l'opzione -x al momento dell'esecuzione del file bash come il seguente comando:

$ Bash -x FileName.Bash

La funzione di debug può anche essere abilitata utilizzando la seguente riga all'inizio dello script:

#!/bin/sh -x

Disabilita il debug

Richiede disabilitare la funzione di debug dello script bash dopo aver risolto il problema. Il comando 'Set +X' viene utilizzato per disabilitare la funzione di debug.

Diversi esempi del comando "set -x"

Sono stati mostrati due diversi usi dell'opzione "set -x" utilizzando esempi.

Esempio-1: abilitare e disabilitare la funzione di debug

Crea un file bash utilizzando il seguente script che prenderà input dall'utente prima e dopo l'utilizzo dei comandi "set -x" e "set +x". Il valore del nome verrà prelevato e stampato prima di utilizzare il comando 'set -x'. Il valore del cognome verrà prelevato e stampato dopo aver utilizzato il comando 'set -x'. Successivamente, i valori del nome e del cognome verranno stampati dopo aver utilizzato il comando 'set +x'.

#!/Bin/Bash
#Take input e stampa
Leggi -p "Inserisci il tuo nome:" Nome
echo "Il tuo nome è $ filialname"
#Enable il comando set -x
Set -x
#Ta un altro input e stampa
Leggi -P "Inserisci il tuo cognome:" LastName
echo "Il tuo cognome è $ lastname"
#Disable Il comando set x
Set +x
#Print le variabili
echo "Il tuo fullname è $ firstname $ lastname"

Produzione:

Il seguente output verrà stampato dopo aver eseguito lo script sopra. Secondo l'output, ogni istruzione dello script è stata stampata dopo aver eseguito il comando "set -x".

Esempio -2: script di debug usando il comando 'set -x'

Crea un file bash con il seguente script che prenderà un nome file dall'utente per la lettura abilitando la funzione di debug. Il comando 'set -x' è stato utilizzato all'inizio dello script per abilitare la funzione di debug. Successivamente, un nome file verrà preso dall'utente. Se non viene fornito alcun nome file dall'utente, verrà stampato un messaggio. Se il nome file prelevato dall'utente non esiste o non è un file, verrà visualizzato un altro messaggio di errore. Se il nome file valido viene preso dall'utente, il contenuto del file verrà stampato.

#!/Bin/Bash
#Enable il debug
Set -x
#Take il nome file dall'utente
echo -n "Inserisci un nome file:"
Leggi FN
#Check se il nome file è vuoto o meno
if ["$ fn" == ""];
Poi
echo "manca il nome file."
#Check se il file esiste o no
Elif [ ! -f "$ fn"];
Poi
#Print Messaggio di errore
echo "$ fn non esiste."
altro
#Print il contenuto del file
Cat "$ fn"
fi

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra senza fornire alcun nome file. L'output mostra che il valore vuoto è stato preso come nome file. La condizione "if" per il controllo di un nome file vuoto è stata restituita vera per l'input vuoto. Quindi, la dichiarazione "Echo" per la stampa è stata stampata l'opzione di debug e il messaggio di errore, "Manca il nome file"È stato stampato.

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra con un nome file. L'output mostra che la condizione "if" per il controllo del nome del file vuoto è stata restituita falsa e la condizione "if" per il controllo del file inesistente è stata restituita anche falsa. Il nome file input, Testfile.TXT esiste nella posizione attuale. Così il 'gatto"comando per leggere il Testfile.TXT Il file è stato eseguito e il contenuto del file è stato stampato.

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra con un nome file. L'output mostra che la condizione "if" per il controllo di un nome file vuoto è stata restituita falsa e la condizione "if" per il controllo di un file inesistente è stata restituita vera perché il File1.TXT non esiste nella posizione corrente. Così il 'gatto"Il comando per la lettura del file non è stato eseguito e il messaggio di errore,"File1.txt non esiste."È stato stampato.

Conclusione

L'attività di debug è una parte molto importante di qualsiasi linguaggio di programmazione per scoprire facilmente l'errore del codice. L'attività di debug viene svolta in diversi modi per diversi linguaggi di programmazione. Molti modi per abilitare la funzione di debug per lo script bash e gli usi del comando "set -x" per il debug dello script bash sono stati descritti in questo tutorial.