bash: Kommandozeilenargumente in Funktion auswerten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
FreakyFrank
Beiträge: 28
Registriert: 12.10.2004 15:12:41

bash: Kommandozeilenargumente in Funktion auswerten

Beitrag von FreakyFrank » 13.12.2004 15:53:48

Hallo mal eine Frage zu Funktionen in bash skripten:
Wenn ich z.b Kommandozeilenargumente in einem Shell Skript bearbeiten will kann ich ja das mit den Variablen $1, $1, $X oder $* $# tun. Diese Variablen sind doch normal global oder?
Wenn ich mir dann zb. eine Shell Funtkion schreiben will das die Kommandozeilenargumente auswertet und entsprechenden Variablen zuweist sind diese Variablen in der Shellfunktion leer.
Folgende Funktion liefert bei sh varausgabe 1 2 3 4 nur leere Zeilen

#!/bin/sh
varausgabe()
{
echo "$*"
echo "$#"
echo "$1"
echo "$2"
echo "$3"
}
varausgabe

Nun die Frage ob ich überhaupt diese Variablen in einer Shellfunktion auslesen kann, oder ich sie in eine andere zwischenspeichern muß. Oder muß ich die Argumentvariablen irgendewie exportieren oder setzen, damit sie in Funktionen funktionieren.
Wenn ich das tun muß bräuchte ich halt noch eine Funktion wie shift wo ich dann die einzelnen Paramter in der zwischengespeicherten $* dann durchparsen kann.

Grüße

Frank

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 13.12.2004 15:58:13

versuchs mal so:

Code: Alles auswählen

#!/bin/sh 
varausgabe() 
{ 
echo "$*" 
echo "$#" 
echo "$1" 
echo "$2" 
echo "$3" 
} 
varausgabe $*

Benutzeravatar
FreakyFrank
Beiträge: 28
Registriert: 12.10.2004 15:12:41

Beitrag von FreakyFrank » 13.12.2004 16:04:29

Besten Dank!!! :lol:
Das wurde in keiner Doku die ich gelesen habe erwähnt.
Und das waren viele....

Gruß

Frank

Antworten