Peter Ross <Peter.Ross(at)alumni.tu-berlin.de> wrote:
> Oliver Fromme wrote:
>
> > lokale_var=$(ssh remotehost ". $filename; echo \$remote_var")
> finished=$(ssh $transfer_user@$transfer_host \
> ". $transfer_control_file; echo \$finished")
>
> Kannte ich noch nicht und funktioniert mit einer bash-2.0.5, aber..
>
> Wenn ich die /bin/sh von Solaris 9 nehme (eine Kornshell):
>
> FileTransfer.sh.2: syntax error at line 174: `finished=$' unexpected
>
> Ich wollte eigentlich das selbe Skript auf der Sun und auf dem
> FreeBSD-Rechner haben (der noch gar nicht da ist.. Mag FreeBSD-/bin/sh
> Deine Syntax?)
Das hättest Du vorher sagen sollen. Ich ging davon aus,
daß Du das Skript auf einem BSD (hier on-topic) benötigst.
Die /bin/sh von Solaris ist eine altertümliche Bourne-Shell
(_keine_ Korn-Shell), die "$()" nicht kennt (und eine Menge
andere Dinge auch nicht).
Ich würde Dir empfehlen, auf Solaris einfach #!/bin/ksh
oder /usr/xpg4/bin/sh zu verwenden. Dann läuft das auch.
> > Sauberer wäre es aber vielleicht, wenn das Skript selbst
> > den Inhalt der Variable ausgibt (evtl. durch Angabe einer
> > Kommandozeilenoption). Dann bräuchtest Du nicht das selt-
> > same echo beim Aufruf per ssh.
>
> Das geht leider nicht, das File wird noch fuer andere Zwecke verwendet und
> hat stumm zu sein.
Daher schrieb ich ja auch: evtl. durch Angabe einer Kom-
mandozeilenoption. Mit anderen Worten, normalerweise ist
das Skript stumm, aber wenn Du es mit --tell-me (oder was-
weiß-ich) aufrufst, machst es am Schluß »echo $finished«.
Also, um's mal ganz genau vorzukauen:
Ganz am Anfang des Skripts folgendes einfügen:
if [ "x$1" = "x--tell-me" ]; then
shift
tell_me=true
else
tell_me=false
fi
Und ganz am Ende des Skripts folgendes anhängen:
if $tell_me; then
echo $finished
fi
Das war's.
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. I suggested holding a "Python Object Oriented Programming Seminar", but the acronym was unpopular. -- Joseph Strout To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Fri 15 Oct 2004 - 15:14:36 CEST