Come riecheggiare i comandi con shell mentre vengono eseguiti in bash
Fai eco ai comandi in Bash aiuta gli utenti e gli sviluppatori a capire cosa sta succedendo nei loro script. Visualizzando i comandi quando vengono eseguiti, gli utenti possono verificare che lo script funzioni come previsto e identifica eventuali errori o comportamenti imprevisti, ecco alcuni modi per eco a comandi in bash:
Metodo 1: usando il comando set
Il comando set in bash può essere utilizzato per abilitare o disabilitare le opzioni e impostare i parametri della shell. Impostando il -X Opzione, è possibile abilitare la traccia di shell, che farà stampare Bash ogni comando prima che venga eseguito.
#!/Bin/Bash
Set -x
Echo "Ciao, Linux!"
Set +x
L'output di questo script includerà il comando in esecuzione:
Metodo 2: usando la trappola del debug
La trappola del debug è una trappola speciale con shell che viene eseguita prima di ogni comando in uno script bash. Definendo una funzione per la trap di debug, è possibile stampare ogni comando prima che venga eseguito:
#!/Bin/Bash
Funzione Debug
Echo "$ Bash_Command"
Debug del debug trap
echo "Ciao, mondo!"
trap - debug
L'output di questo script includerà il comando in esecuzione:
Metodo 3: usando l'opzione bash -x
Puoi anche abilitare Xtrace modalità passando il -X Opzione al comando bash quando si esegue uno script. Per illustrare l'uso di -X Opzione qui è un semplice script bash che stampare solo una stringa usando il comando Echo:
#!/Bin/Bash
Echo "Ciao, Linux!"
Per eseguire questo script con la modalità Xtrace abilitata, è possibile eseguire lo script utilizzando la sintassi di seguito:
Bash -x
In questo esempio, il bash -X Il comando esegue lo script con Xtrace modalità abilitata, causando la stampa della shell ogni comando prima che venga eseguita. Il comando Echo quindi stampe "Ciao mondo!" alla console:
Conclusione
Echendo comandi shell mentre vengono eseguiti è un modo potente per eseguire il debug di script bash. Usando il impostato comando, il -X opzione e Trappola del debug, È possibile stampare facilmente ogni comando prima che venga eseguito.