Ich möchte ein Skript debuggen, das ich in platziert habe /etc/pm/sleep.d
. In meinem Skript gebe ich einen echo
Befehl aus, um den Status zu melden.
Wo kann ich diese Ausgabe lesen? Ich denke an etwas wie oder vielleicht dmesg
eine Datei in ?/var/log
Ist das der bessere Weg? Was ist die Standardpraxis beim Debuggen von Bash-Skripten, die vom System ausgeführt werden sollen (wie die in /etc/init.d/
oder . Xinit
)?
Antwort1
Ich habe herausgefunden, dass echo
Sie statt verwenden können, logger
um Befehle zur Fehlerbehebung in das Systemprotokoll auszugeben.
logger "Oh no"
Anschließend können Sie die Ausgabe in /var/log/syslog überprüfen.
sudo tail /var/log/syslog
Antwort2
Wie Sie bereits erwähnt haben, haben Sie in Ihrem Skript eine Echo-Anweisung.
Bearbeiten Sie nun Ihr Skript und dies wie am Anfang der Datei nach Shebang.
> /tmp/myoutput
myoutput ist nur ein Dateiname im /tmp-Mount, Sie können wählen, was Sie möchten.
Danach, wo immer Sie eine Echo-Anweisung in Ihrem Skript haben wie diese
echo "something"
ändere es in
echo "something" >> /tmp/myoutput
das ist alles. So haben Sie bei jeder Ausführung Ihres Skripts den aktuellen Überblick darüber, was mit Ihrem Skript passiert ist.