Argumente auswerten

Damit ist der Parser eingerichtet, es beginnt das Auswerten der Argumente (Zeile 61). Hier kommt die Methode parse! zum Einsatz. Die auf der Kommandozeile angegebenen Argumente legt Ruby beim Start eines Skriptes von der Shell im Array ARGV ab. Ist dies nicht vorhanden, legt die Methode es an. Alternativ geben Sie ein eigenes Array an, zum Beispiel:

["-i", "~/.kde", "~/backup/.kde"]

Das Ausrufezeichen im Methoden-Namen teilt dem Objekt mit, vor dem Auswerten der Argumente alle Optionen zu entfernen. So erhalten wir nur noch die Namen der Verzeichnisse. Dokumentiert ist dies indes nur im Quelltext der Klasse, den Sie bei einer Standard-Installation von Ruby in der Datei /usr/lib/ruby/1.8/optparse.rb finden.

In Zeile 66 und 67 testet das Skript, ob beide Verzeichnisse angegeben sind. Dabei kommt eine Kurzschreibweise für die entsprechende Bedingung zum Einsatz: Statt if Ausdruck ... end testet es hier Ausdruck1 or Ausdruck2.

Wie das funktioniert, wird klar, wenn Sie die folgenden Ausdrücke in irb eingeben: false or "Hallo", nil or "Hallo", true or "Hallo", 42 or "Hallo", "Wiewahr" or "Hallo". Liefert der erste Ausdruck "wahr" zurück, verwendet Ruby diesen, ansonsten wertet es den zweiten Ausdruck aus.

Wahr (true) ist dabei für Ruby schlicht alles, was nicht false oder nil ist. Den Ausdruck nil verwendet Ruby dagegen für alles, was keinen Wert hat – so auch für einen fehlenden Eintrag im Array ARGV, wie etwa ein fehlendes Argument.

Fehler behandeln

Die Fehlerbehandlung beim Auswerten der Argumente erfolgt über Exceptions: Löst ein Befehl zwischen den Schlüsselworten begin und rescue eine Exception aus, dann ruft ruby den Block zwischen rescue und end auf. Eine Exception könnte von der Methode parse! kommen. Zudem löst das Skript mittels raise selbst eine Exception aus, wenn ihm ein Verzeichnis fehlt.

Die Exception landet in Zeile 68 in der Variable e. Das Skript gibt dann einfach nur die Meldung aus und beendet sich (Zeilen 69 und 70). Das Skript fängt hier jede Exception ab, selbst einen Syntaxfehler. Es ist aber auch möglich, nur einen bestimmten Fehlertyp abzufangen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • The Answer Girl
    Lauter kaputte Links in Webseiten, nur weil bei ihrer Erstellung Groß- und Kleinschreibung unbeachtet blieb? Dieses Problem lässt sich zum Beispiel mit einem Perl-Skript lösen.
  • Mit dem Raspberry Pi eine Wetterstation anzapfen
    Einige Wetterstationen liefern ihre Messdaten per USB an einen angeschlossenen Rechner. Mit dem Raspberry Pi lassen sich so die Daten auswerten und per Web-Anwendung ins Netz stellen.
  • Mit Python programmieren
    Trotz grafischer Oberflächen führt manchmal kein Weg am Einsatz von Skripts vorbei, die regelmäßige Aufgaben individuell lösen. Einsteigern bietet sich dafür die klar strukturierte Sprache Python an.
  • Typische Fehler in Python-Code vermeiden
    Python ist einfach – aber nicht so einfach, dass man es allein durch Lesen von Code lernen könnte. Mit etwas Hintergrundwissen vermeiden Sie typische Fehler in Python-Code und schreiben so bessere Programme.
  • Präsentationen auf der Kommandozeile
    Wenn's für fast jede Anwendung eine Möglichkeit gibt, alternativ auf grafische oder textbasierter Software zurück zu greifen – warum sollte das bei Vorträgen und Präsentationen anders sein?
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...