Hallo, Am Mon, 08 Dec 2003, Karl Sinn schrieb:
Noch ein paar Fragen:
1) Ich habe gerade gemerkt, dass bei der Übergabe von Parametern wie z.B * nicht "*" übergeben wird sondern alle passenden Dateien als Parameter. Kann man das umgehen?
Du musst den '*' quoten, sonst expandiert den die shell. Alles weitere ist dann nur die logische Folge. Vgl. z.B. 'find . -name "*.foo"'.
2) Warum funktioniert das jetzt nicht?
testen=$1 while [ $testen -ne "" ] do ^^ Du willst dringend 'help while' lesen!
while: while COMMANDS; do COMMANDS; done ^!! while test "$testen" != ""; do ... Siehe dazu 'help test' unter besonderer Beachtung von String vs. Integervergleich. Uebrigens: es ist _wichtig_, dass du die zu vergleichende Variable quotest, sonst faellst du auf die Schnauze, wenn diese leer ist. Robust ist folgendes: while test "x${testen}" != "x"; do ... done alternativ evtl.: while test -n "$testen"; do ... done und wie gesagt: immer schoen brav quoten! Sonst bekommst du sehr schwer nachvollziehbare Fehler!
echo "Dateinamen: ab $1$2" shift testen=$1 done
Was willst du damit machen?
bash-Programmierung ist ganz schön undurchschaubar
Nicht, wenn man da systematisch rangeht. -dnh PS: Karl, mach dir bitte mal die Muehe und lese dir mal ein paar Grundlagen an und lerne diese, indem du jedes "Konstrukt" austestest. Im Archiv findest du da einige Texte zu, oder auch auf selflinux.de und anderswo. -- ...on the mis-spelling of "deity" as "diety": 'I before E except when referring to your god.' 'There are no Is or Es (though plenty of "Aieee!"s) in "Cthulhu".' -- Axly and Mark in the SDM