2011-02-22 207 views
0

使用我发现的用于FTP的方便脚本,我将其修改为我自己使用,并且它可以正常工作,但太好,或者太字面。如何在FTP shell脚本中使用变量?

#!/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 

也就是说,得到“放”的文件(S),被命名为*.sql,并取代它的任何以前的版本,而不是file1.sqlfile2.sql等。在最初的剧本,他们正在做一个put,而不是mput,并使用单个文件名text.txt。我也尝试将FILE后的单引号改为双引号,并得到相同的结果。有人可以让我介绍使用变量进行CLI FTP操作的“技巧”吗?

由于提前, LO

回答

0

我想试试这个:

FILE=*.sql 

不带任何引号使通配符扩展 和:

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

只需$ FILE

+0

没有第一部分的引用,但我必须有两个'“$ FILE”才能使它工作。谢谢! – LOlliffe 2011-02-23 08:38:46

0

但我想你可以做mput /home/myAcct/SQLbackups/$FILEmput *.sql?或者如果你需要用put放几个文件,那么你需要用某种循环一个接一个地做。

要检查脚本的功能,请将ftp -n $HOST更改为cat。在普通的ftp会话中试试这些命令。做他们的工作?