So debuggen Sie ein Shell -Skript?

So debuggen Sie ein Shell -Skript?

Debugging ist der Prozess des Auffindens und Lösen von Fehler in einem Computerprogramm. Es bietet eine große Ausgabe zur Laufzeit, um jeden Teil der Ausführung zu analysieren. Dies hilft, die Hauptursache eines Fehlers im Skript zu identifizieren. In diesem Tutorial lernen Sie, wie Sie ein Shell -Skript in der Befehlszeile der Linux debuggen.

Wir können ein Shell -Skript auf zwei Arten debuggen. Fügen Sie entweder die Debugging -Anweisung im Shell -Skript mithilfe der Verwendung hinzu "Set -xv" oder verwenden -xv Auf Befehlszeile beim Ausführen von Skript.

Hinzufügen von Debug -Anweisungen im Shell -Skript

Erstellen wir ein kleines Skript, um den Debugging -Prozess zu testen. Erstellen Sie eine neue Datei und bearbeiten Sie im Texteditor:

Nano Checkdebug.Sch  

Fügen Sie den folgenden Inhalt zur Datei hinzu:

#!/bin/bash set -xv # Dies aktiviert Debugd CD/var/log/for i in "**.Protokoll "; tun du -sh $ ich hat getan
1234567#!/bin/bash set -xv # Dies ermöglicht Debugcd/var/log/for i in "***.log "; do du -sh $ idone

Speichern Sie Änderungen und schließen Sie die Datei.

Legen Sie als nächstes die Ausführungsberechtigungen in Datei fest und führen Sie sie anschließend aus.

chmod +x checkdebug.Sch  ./checkdebug.Sch  

[Probenausgang]

CD/var/log/ + cd/var/log/for i in "***.log "; do du -sh $ ich hat + für i in '"*.Protokollieren Sie "' + du -sh Boot.Log Mysqld.Protokoll nach 111.Protokoll nach 1121.log yum.Protokoll 0 Boot.Log 32K mysqld.Protokoll 0 post111.Protokoll 0 post1121.Protokoll 4.0k yum.Protokoll 

Geben Sie Debug -Anweisungen von der Befehlszeile an

Mit dieser Option müssen wir nicht "set -xv" im Shell -Skript hinzufügen. Erstellen Sie einfach ein Shell -Skript wie unten

Nano Checkdebug2.Sch  
#!/bin/bash cd/var/log/für i in "*.Protokoll "; tun du -sh $ ich hat getan
123456#!/bin/bash cd/var/log/für i in "*.log "; do du -sh $ idone

und wie unten wie unten ausführen

SH -XV CHECKDEBUG2.Sch  

[Probenausgang]

#!/bin/bash cd/var/log/ + cd/var/log/for i in "**.log "; do du -sh $ ich hat + für i in '"*.Protokollieren Sie "' + du -sh Boot.Log Mysqld.Protokoll nach 111.Protokoll nach 1121.log yum.Protokoll 0 Boot.Log 32K mysqld.Protokoll 0 post111.Protokoll 0 post1121.Protokoll 4.0k yum.Protokoll