Re: ssh und Environment-Variable

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 15 Oct 2004 15:10:41 +0200 (CEST)

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 message
Received on Fri 15 Oct 2004 - 15:14:36 CEST

search this site