Re: ssh und Environment-Variable

From: Peter Ross <Peter.Ross(at)alumni.tu-berlin.de>
Date: Sat, 16 Oct 2004 15:01:17 +1000

On Fri, 15 Oct 2004, Oliver Fromme wrote:

> Peter Ross <Peter.Ross(at)alumni.tu-berlin.de> wrote:
> > 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 haeättest Du vorher sagen sollen. Ich ging davon aus,
> daß Du das Skript auf einem BSD (hier on-topic) beoenötigst.

Die Box ist zum Versenden und Empfangen von Daten via FTP an Kunden, steht
in der DMZ und wird von internen Maschinen via ssh und scp gefuettert. Das
sind bis jetzt Linux- und Solarisrechner, an denen ich teste, aber wird
auch eine FreeBSD-Kiste sein. Moeglicherweise kommt noch HP/UX hinzu, wer
weiss schon was noch (es ist ein ganzer Zoo im Serverraum..)

Ich habe bis jetzt eigentlich fast noch nie Probleme gehabt, Shellskripte
von FreeBSD nach anderswo zu bringen. Zum Teil wahrscheinlich wegen meines
begrenzten Wortschatzes;-) Ich habe auch hemmungslos die
FreeBSD-rc-Skripts ausgebeutet..

Allerdings ist Solaris wohl immer noch der Haertetest (tar ohne -z z.B.)
.. und wie es aussieht auch die Shell.

> Die /bin/sh von Solaris ist eine altertueümliche Bourne-Shell
> (_keine_ Korn-Shell), die "$()" nicht kennt (und eine Menge
> andere Dinge auch nicht).

Stimmt, entschuldigt, ich habe den Beginn der sh-Manpage zu fluechtig
gelesen, der Hinweis auf die Kornshell dort bezieht sich auf
/usr/xpg4/bin/sh

> Ich wueürde Dir empfehlen, auf Solaris einfach #!/bin/ksh
> oder /usr/xpg4/bin/sh zu verwenden. Dann laeäuft das auch.

Wuerde ich wohl, wenn es nur Sun betraefe. ich moechte aber das Skript
lieber einmal haben als auf jedem OS anpassen zu muessen. Und ein

#!if [ `uname` = "dies" ]; then /path_to_shell

mag wohl kein OS;-) (Weswegen ich auch perl oder bash liebe, mal
/usr/bin/perl, mal /usr/local/bin/perl oder gar /opt/gnu/bin/bash..
herrliche Symlink-Konstrukte entstehen da;-)

> Daher schrieb ich ja auch: evtl. durch Angabe einer Kom-
> mandozeilenoption.

Ja, danke. An dem Skript kann ich nicht wirklich drehen, es wird auf dem
"FTP-Puffers" fuer jedes File automatisch erzeugt und haelt
Informationen ueber Ziel des Transfers und halt auch, ob ein angefordertes
File fertig uebertragen wird.

Ich dachte auch an direktes parsen, aber da z.B. "$ZIELDIR/myfile.txt"
drinsteht, ist es eleganter, zu sourcen (sonst muss ich auch noch das
Variablenreplacement nachbauen.

Es gruesst
Peter

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 16 Oct 2004 - 07:02:00 CEST

search this site