2011-02-22 5 views
0

En utilisant un script pratique que j'ai trouvé pour FTP-ing, je l'ai modifié pour mon propre usage, et cela fonctionne, mais trop bien, ou trop littéralement.Comment utiliser une variable dans un script shell FTP?

#!/bin/sh 

HOST='10.0.1.110' 
USER='myName' 
PASSWD='myPass' 
FILE='*.sql' # WILDCARD NOT WORKING - Takes literal string of '*.sql' 

# Stripped unrelated code 

ftp -n $HOST <<END_SCRIPT 
quote USER $USER 
quote PASS $PASSWD 
prompt 
binary 
cd Desktop/SweepToDiskBK 
mput /home/myAcct/SQLbackups/"$FILE" "$FILE" 
quit 
END_SCRIPT 
exit 

C'est, le fichier (s) qui obtient 'put', est nommé *.sql, et remplace toutes les versions précédentes de celui-ci, au lieu de file1.sql, file2.sql, etc. Dans le script original, ils faisaient un put, au lieu d'un mput et avec un seul nom de fichier text.txt. J'ai également essayé de changer les guillemets simples après FILE, à des guillemets doubles, et ai obtenu le même résultat. Quelqu'un peut-il me laisser entrer dans le 'tour' d'utiliser des variables pour le FTP-CLI?

Merci à l'avance, LO

Répondre

0

Je vais essayer ceci:

FILE=*.sql 

sans guillemets permettant l'expansion générique et:

mput /home/myAcct/SQLbackups/"$FILE" 

avec juste un $ FILE

+0

Sans les guillemets travaillés pour la première partie, mais je devais avoir les deux '' $ FILE "' s pour le faire fonctionner. Merci! – LOlliffe

0

Mais je pense que vous pouvez simplement faire mput /home/myAcct/SQLbackups/$FILE à mput *.sql? Ou si vous avez besoin de mettre plusieurs fichiers avec put, alors vous devez le faire un par un avec une sorte de boucle. Pour vérifier ce que le script fait, remplacez ftp -n $HOST par cat. Essayez ces commandes très dans la session ftp ordinaire. Est-ce qu'ils travaillent?

Questions connexes