http://www.pronix.de -> Forum -> Linux-Unix Programmierung

Forum: Linux-Unix Programmierung

Moderatoren: juergen, Martin Conrad

Thema: [EDIT] - Errata beim login_time script vielleicht ?

  • (nur registrierte Mitglieder)
Hi,

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

 
Ich versuchs mal anders zu erklären:

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

 
  • (nur registrierte Mitglieder)