geist_der_foren Geschrieben 8. Dezember 2003 Teilen Geschrieben 8. Dezember 2003 Hi @all, kann mir mal jeman erklären, was das SHIFT genau macht ??? Ich hab das noch nicht so ganz vertsanden ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
nic_power Geschrieben 8. Dezember 2003 Teilen Geschrieben 8. Dezember 2003 Hallo, Um auf die Argumente eines Shell-Skriptes zugreifen zu können, kannst Du mit $0, $1 ... $9 usw. arbeiten ($0 ist der Name des Skriptes). Dies funktioniert allerdings nur bis $9, möchtest Du auf ein weiteres Argument zugreifen, so kannst Du mit SHIFT arbeiten. "shift 1" verschiebt die Argumente um eins nach links, d.h. $1 wird zu $2, $2 zu $3 usw. Dies erlaubt Dir, mehr als neun Argumente zu verarbeiten. Nic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geist_der_foren Geschrieben 9. Dezember 2003 Autor Teilen Geschrieben 9. Dezember 2003 Achso, jetzt verstehe ich ... Aber wieso wird in diesem Skript einen SHIFT benutzt ... if [ "$1" == "-t" ] ; then test="yes" [COLOR=red]shift 2[/COLOR] fi while [[ $1 == -* ]] do case "$1" in -u) uid="$2" ;; -g) gid="$2" ;; -G) sgids="$2" ;; -d) home="$2" ;; -c) com="$2" ;; -s) shell="$2" ;; -k) profdir="$2" ;; *) echo "Optionen: -ugGdcsk (man useradd)" && exit 1 ;; esac [COLOR=red]shift 2[/COLOR] done Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geist_der_foren Geschrieben 9. Dezember 2003 Autor Teilen Geschrieben 9. Dezember 2003 Noch eine frage: Wie ist das eigentlich, wenn ich jetzt zum Beispiel folgedes weg lasse, kann ich dann in der while Schleife, das shif2 lassen ? if [ "$1" == "-t" ] ; then test="yes" [COLOR=red]shift 2[/COLOR] fi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 9. Dezember 2003 Teilen Geschrieben 9. Dezember 2003 Es werden immer die Parameter beim Aufruf um 2 Positionen (Pos.1:)-(BUCHSTABE) (Pos.2:) PARAMETER nach links rausgeshiftet (geschoben) und die nächsten 2 liegen an falls man mehrere hat. Bei der 2. Frage solltest Du nur um 1 shiften und wenigstens einen Abbruchparameter einbauen (dazu war die while-Schleife auch da). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geist_der_foren Geschrieben 9. Dezember 2003 Autor Teilen Geschrieben 9. Dezember 2003 achso ... jetzt habe ich das verstanden, klar ... wenn die while schleife nicht da wär, dann bricht er ja sofort ab ... Danke für die hilfe :bimei Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.