Forum: Linux-Unix Programmierung
Moderatoren: juergen, Martin ConradThema: [EDIT] - Errata beim login_time script vielleicht ?
Re: Errata beim login_time script vielleicht ?
icefire am 13.01.2011 um 22:04
der Wert der Shellvariable $# wird durch den Aufruf von set verändert.
Füg zusätzliche Ausgaben im Skript ein, zum Beispiel so:
Zitat:
echo "Vorher: $#"
set `who | grep $1`
echo "Nachher: $#"
Das liefert:
TTY
you@host > ./tmp.sh user
Vorher: 1
Nachher: 4
(user) login-zeit: 10:14
Die Anzahl der Parameter wird verwendet, um zu überprüfen ob die Suche nach dem Benutzernamen erfolgreich war.
Für denselben Zweck habe ich in dem Änderungesvorschlag in meinem ersten Post die Variable $? verwendet.
mfg, Wolfgang
--
Hex, Bugs and Rock 'n Roll
Re: Errata beim login_time script vielleicht ?
Martin Conrad (webmaster) am 14.01.2011 um 06:14
Der Programmablauf sieht so aus:
* Prüfen, ob das Script korrekt aufgerufen wurde sonst Abbruch.
* Programmablauf mit Prüfung des Ergebnisses.
Der zweite Teil, kommt also nur zur Ausführung, wenn der erste Teil erfüllt wurde.
Wenn eine Condition mit exit beendet wurde hat es den selben effekt, wie eine if else condition.
Die nächsten beiden Codefragmente machen exakt das Selbe:
if[$# -ne 1]
then
echo "Verwendung $0 username"
exit
fi
echo "Korrekte Eingabe"
if[$# -ne 1]
then
echo "Verwendung $0 username"
else
echo "Korrekte Eingabe"
fi
Bis denne
Martin
--
0xC0FFEE
