Hallo Andreas, Andreas.Kyek@arcor.net wrote:
David Haller wrote:
Bernd Brodesser wrote:
VAR3=`echo XXabXX | sed 'sed s|$VAR1|$VAR2|'`
Das funzt bei mir nicht. $ ./test.sh sed: -e expression #1, char 18: Unterminated `s' command
Klar, da das zweite Vorkommen der Zeichenfolge sed ein Vertipper von Bernd war.
Klar. Aber da's von Bernd kam, hab ich's einfach doch mal getestet, nur um zu sehen ob da nicht doch.... ;)
Das dann naheliegende: VAR3=`echo /home/marc/test.sh | sed 's|$VAR1|$VAR2|'` mach gar nichts, was aber klappt ist:
Falsch! Es macht schon was, nur es wird nichts ersetzt.
Ebent. (Ich habe der Einfachheit halber "macht nix" mit "macht nix fuer die Problemloesung sinnvolles" gleichgesetzt ;)
Das Problem ist, das die Shell alles in einfachen Quotes (') gar nicht beachtet. Insbesondere findet keine Variablenersetzung statt. Hier versuchst du also den String '$VAR1' durch den String '$VAR2' zu ersetzen.
Ahh! (Schon wieder was gelernt).
VAR3=`echo /home/marc/test.sh | sed "s|$VAR1|$VAR2|"` (Achso: bei mir ist VAR1=marc, VAR2=dh/bin ;)
Auch klar, weil bei doppelten Quotes (wie schreibt man eigentlich den Plural von Hochkomma?)
Wie bei "Komma": Hochkommata
die Shell eine Variablenersetzung durchführt.
Ah jetzt ja... bilde ich mir ein was geblickt zu haben... CU David -- "DOS=HIGH ...I knew it was on something!" (UNIX user, while reading C:\CONFIG.SYS) email: David@dhaller.de www: www.dhaller.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com