ubuntuusers.de

shell Script durch Benutzer abbrechen

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

bastel-wastel

Anmeldungsdatum:
13. Oktober 2008

Beiträge: 345

Hallo,

ich schreibe mir gerade ein Script um sporadischen Aussetzer meiner USB-Festplatte auf die Schliche zu kommen (Daten schreiben / lesen). Da das Script ne Weile läuft, suche ich eine Möglichkeit, um dieses als Benutzer vorzeitig abzubrechen. Es ist ein sh script, das ich im Terminal mit "sh meinscript" aufrufe.

Gerade wenn ich ein zeitaufwändiges Script schreibe, ist es natürlich blöd, wenn die ersten Befehle schon einen Fehler enthalten und man warten muss, bis das Script fertig ist.

Wie kann ich als Benutzer ein laufendes Script beenden?

Gruß bastel

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

Fast alle Konsolenprogramme lassen sich mit Strg + c beenden.

bastel-wastel

(Themenstarter)

Anmeldungsdatum:
13. Oktober 2008

Beiträge: 345

Wunderbar,

danke sehr 👍

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

bastel-wastel schrieb:

Gerade wenn ich ein zeitaufwändiges Script schreibe, ist es natürlich blöd, wenn die ersten Befehle schon einen Fehler enthalten und man warten muss, bis das Script fertig ist.

Wie kann ich als Benutzer ein laufendes Script beenden?

Besser ist es, das Skript beendet sich dann selbst. Wenn ein Befehl fehlschlägt liefert er 'falsch' als Ergebnis (sollter er zumindest). So kann man

befehl || exit

schreiben (|| ist 'oder') - entweder der Befehl ist erfolgreich, oder beende das Skript, steig aus.

bastel-wastel

(Themenstarter)

Anmeldungsdatum:
13. Oktober 2008

Beiträge: 345

Das ist natürlich eine elegante Methode.

Die werde ich sicher noch brauchen können. Danke sehr!

The-Compiler Team-Icon

Avatar von The-Compiler

Anmeldungsdatum:
21. April 2006

Beiträge: 2640

Wohnort: Winterthur, Schweiz

Es ist vielleicht noch etwas schöner, wenn auch noch ein exit-Status ausgegeben wird, kann eine Zahl zwischen 0 und 255 sein, wobei 0 erfolgreich bedeutet, und 1-255 quasi Fehler sind 😉 Also eher

exit 1

😉

Flo

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

The Compiler schrieb:

Es ist vielleicht noch etwas schöner, wenn auch noch ein exit-Status ausgegeben wird, kann eine Zahl zwischen 0 und 255 sein, wobei 0 erfolgreich bedeutet, und 1-255 quasi Fehler sind 😉 Also eher

exit 1

Wenn man jetzt wüßte, welch kryptisches Kürzel den letzten Fehlercode zugänglich macht, dann könnte man diesen weiterreichen:

befehl || exit $?

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

Hey wenn das so weiter geht werden hier gleich noch exception classes für die Shell entwickelt 😀

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Wenn man die Shell mit der Option -e startet, wird sie automatisch beendet, wenn ein Befehl fehlschlägt (es sei denn, er steht als Bedingung in einem if-Statement oder einer while-Schleife).

Antworten |