bash-Skript array decalrieren

I

ixs

Foren As
Hi ,
ich will mir per skript und cron immer ein paar Dateien bearbeiten . Mein Problem dabei ist, das er die Variblen nicht als string akzeptieren will, da die Datei noch nicht existiert.

#!/bin/bash
# autoftp.sh

# @(#) s1 Demonstrate declare and printf.

bash --version

file_a[0]="/home/xxx/a/a.txt";
file_b[0]="/home/bbb/b/b.txt";

Könnt ihr mir bitte helfen, was kann ich machen?
Danke! :))
 
Hi,

Mein Problem dabei ist, das er die Variblen nicht als string akzeptieren will, da die Datei noch nicht existiert.
das glaube ich nicht.

was kann ich machen?
Du koenntest mit einer Fehlerbeschreibung anfangen, denn dein kleiner Code Auszug ist syntaktisch korrekt, und funktioniert hier ohne Probleme.
Ausserdem hast du da zwar brav "bash --version" drin stehen, aber es waere nicht schlecht, wenn du die Ausgabe davon auch noch posten koenntest. ;)

Allerdings sind die Semikola am Ende der Zuweisungen ueberfluessig.

mfg,
bytepool
 
Jo wollt Euch nicht zutexten :D

#!/bin/bash
# autoftp.sh

# @(#) s1 Demonstrate declare and printf.

bash --version


remote_file[0]='remote/datei_0.txt'
lokal_file[0]='lokal/datei_0.txt'

remote_file[1]='remote/datei_1.txt'
lokal_file[1]='lokal/datei_1.txt'

ftp -n <<EOFTP
open server
user USER Passwortn

for i in ${remote_file[@]} do
get ${lokal_file[$i]} ${remote_file[$i]}
echo ${lokal_file[$i]} ${remote_file[$i]}
done

quit
EOFTP

glaub bei der for Schleife bei ftp wird er auch noch ein wenig rummeckern.

Fehler:
./skript_GetFTPData: 9: remote_file[0]= remote/datei_0.txt: not found
./skript_GetFTPData: 10: remote_file[0]= lokal/datei_0.txt: not found

./skript_GetFTPData: 12: remote_file[1]= remote/datei_1.txt: not found
./skript_GetFTPData: 13: remote_file[1]= lokal/datei_1.txt: not found

vielen Dank für Eure Hilfe!
 
Zuletzt bearbeitet:
Hi,

bitte in Zukunft Code-Tags statt Zitaten verwenden, dann klappt das auch mit den Einrueckungen. ;)

Deine Pfadangaben beginnen mit Leerzeichen, ich glaube kaum dass das gewollt ist. Ansonsten kenne ich mich mit here documents so gut wie gar nicht aus, aber kann ftp for Schleifen abarbeiten?

Edit:
Ach, das schriebst du ja auch schon selber. ;)

Edit2:
Zumal, wenn das eine bash for Schleife sein soll, vor dem "do" noch ein Semikolon, oder eine neue Zeile fehlt.

mfg,
bytepool
 
Zuletzt bearbeitet:
Ja, hab ein bisschen rumprobiert und deshalb am anfang das Leerzeichen verwendet.
hab Sie jetzt entfernt. :))


Mein Problem scheint mit dem Array zu tun zu haben, als normale variable gibt es da keine Probleme.
----------------------------------------------------------------------------------------------------------------------

So scheint mit sidux zutun gehabt haben, das er die Arrays nicht annehmen wollte oder besser
gesagt, ich habe irgendetwas nicht installiert. Auf meinem anderen läuft es tadellos.

Doch ein Problem habe ich noch:
for((i=0;i<${#remote_file[@]};i++));
do
ftp -n <<EOFTP
open server
use user passwort
bin
pwd

get ${lokal_file[$i]} ${remote_file[$i]}
quit
EOFTP
echo ${remote_file[$i]};
done
syntax error: unexpected end of file
Es muss definitiv am ftp -n <<EOFTP liegen,
den ohne ihn gibt er sauber den echo Befehl aus.

vielmals Danke!
 
Zuletzt bearbeitet:

Ähnliche Themen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

bash: Fehlermeldung und Werte in Array sortieren?

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Debian squeeze, Webmin, Samba Freigaben

Last mit etc/passwd anzeigen lassen

Zurück
Oben