PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kleine bash hilfe



bob_morane77
09.10.06, 13:12
hi,

ich hab mal wieder nen kleines problem und bin mir sicher, das ihr mir helfen könnt ;-). ich hole mit einem script von zu hause auf dem linuxserver logfiles ab (oder will es zumindest).
also gehe ich her und stelle verbindung her, nehme mir
das datum von gestern, weil es halt da oben so ist und will eben dieses datum als ordnername anspringen. leider akzeptiert ftp das nicht und ich habe schon x varianten von hochkommas durch.

das ist sicher nen denkfehler ;-)
das echo kommt, aber im "ftp" akzeptiert er die variable nicht.

anbei mal das script

danke

----------------------------------------------------------


#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH

#DATUM=`date -d yesterday +"%Y-%m-%d"`
JAHR=`date -d yesterday +"%Y"`
MONAT=`date -d yesterday +"%m"`
TAG=`date -d yesterday +"%d"`
v1=cd1

pfad=$v1/$JAHR/$MONAT/$TAG
#echo $pfad

cd /

ftp -nv xxx.xxx.xxx.xxx <<"EOF"
user test@test.de test
cd $pfad

bye
EOF

exit 0

marce
09.10.06, 13:14
Bin mir gerade nicht sucher, ob das mit der Variablen-Ersetzung in den Bereichen auch funktioniert - vermutlich will er also nach cd $pfad wechseln.


gerade probiert - wenn ich ftp durch more ersetze bekomme ich:

:~ # bash test.sh
user test@test.de test
cd $pfad

bye
EOF

exit 0


Ersetzung geht also so nicht.

Workarround: schicke doch die Befehle an ein z.B. "cmd.ftp"-Script und rufe das als Input für den ftp-Client auf...

403
09.10.06, 16:02
hi,



anbei mal das script

ftp -nv xxx.xxx.xxx.xxx <<"EOF"
user test@test.de test
cd $pfad

bye
EOF

exit 0
[/CODE]


Was passiert wenn (das erste) EOF nicht gequotet wird?

marce
09.10.06, 16:08
das dürfte daran nichts ändern.

Der Gestreifte
09.10.06, 20:23
aber im "ftp" akzeptiert er die variable nicht.Ist das "$" für ftp nicht ein besonderes Zeichen?

marce
09.10.06, 20:48
In dem Fall - na und?

ftp bekommt ein "cd $pfad" angewiesen und kann damit natürlich nichts anfangen, mit einem "cd da/soll/es/hin" hingegen schon. Man muss also dafür sorgen, dass dies ftp übergeben wird - und wenn mein Versuch oben der Realität entspricht, so muss man eben die für ftp relevanten Befehle in eine Scriptdatei schreiben und diese dann ftp zum Fraß vorwerfen. Wäre also nur minimaler Änderungsaufwand.

bob_morane77
09.10.06, 23:38
hi,

erstmal danke für eure antworten.
ja, das soll schon in realität funktionieren.

könnt ihr mir nen tip geben, wie ich das extern "ftp zum fraß" vorwerfen kann ?

danke

403
10.10.06, 01:41
das dürfte daran nichts ändern.

Ich bezog mich auf advanced_bash_scripting guide Chapter 17. Beispiel 6,
und dort fehlen die quotes bei EOF. :p

Naja darunter ist dann gleich ein Beispiel mit Quotes bei denen Variablen.

http://www.google.de/search?hl=de&q=Advanced+Bash+Scripting+Guide+ftp+EOF&btnG=Suche&meta=

marce
10.10.06, 06:54
*nachkuck* *ausprobier*

Stimmt. Schon wieder was gelernt.

Alternativ-Lösung zu oben ist also die Quotes zu entfernen... :-)

bob_morane77
10.10.06, 08:57
das probier ich aus

403
10.10.06, 09:13
*nachkuck* *ausprobier*

Stimmt. Schon wieder was gelernt.

Alternativ-Lösung zu oben ist also die Quotes zu entfernen... :-)

:)



---------------
10-Zeichen

bob_morane77
10.10.06, 16:21
vielen dank für die hilfe.
der trick mit den quotes war die lösung.

cu