2016-07-21 8 views
0

Ich möchte for-Schleife in das FTP-Skript einfügen. Mein Code ist wie folgt.Es ist möglich, for-Schleife in ftp-Skript einzufügen?

ftp -n ftp.server.com <<EOF 
    user name passwd 
    bin 
    prompt 
    for DATA in d f g l m n o p q; do 
     mkdir /directory/$DATA 
     cd /directory/$DATA 
     mput *.$DATA 
    done 
    hash 
    bye 
EOF 

Es ist nicht funktioniert und Fehler

Interactive mode off. 
We only support non-print format, sorry. 
?Invalid command 
?Invalid command 
?Invalid command 
Create directory operation failed. 
local: mput: No such file or directory 
(local-files) ?Invalid command 
Hash mark printing on (1024 bytes/hash mark). 

Natürlich kann ich in for-Schleife dieses ftp Skript setzen, umgekehrt. Gibt es irgendeinen guten Rat?

+0

versuchen Sie, viele Dateien in einer Sitzung hochzuladen/herunterladen, also die Schleife oder Sie versuchen nur, es durch Skript zu automatisieren? –

+0

Ja, ich möchte Dateien in einige Verzeichnisse hochladen. –

+0

können Sie versuchen mit dieser Option (ftp -n -v) und sehen, ob es mehr in einem Protokoll auslässt und überprüfen Sie auch mit Eingabeaufforderung aus –

Antwort

1

Sie können nicht bash Schleife innerhalb ftp Prompt verwenden. Aber Sie können die stdin für ftp über eine Bash-Schleife generieren.

{ 
    echo username passwd 
    echo bin 
    echo prompt 
    for DATA in d f g l m n o p q; do 
     echo mkdir /directory/$DATA 
     echo cd /directory/$DATA 
     echo mput *.$DATA 
    done 
    echo hash 
    echo bye 
} | ftp -n ftp.server.com 
Verwandte Themen