如何在FTP shell脚本中使用变量?

时间:2011-02-22 20:31:06

标签: shell scripting command-line ftp

使用我在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

也就是说,获取“put”的文件名为*.sql,并替换以前的任何版本,而不是file1.sqlfile2.sql等。在原始脚本中,他们正在使用put而不是mput,并使用单个文件名text.txt。我也尝试在FILE之后更改单引号,加倍引号,并得到相同的结果。有人能让我参与使用CLI FTP-ing变量的“技巧”吗?

提前致谢, LO

2 个答案:

答案 0 :(得分:0)

我试试这个:

FILE=*.sql

没有任何引号启用通配符扩展 并且:

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

只有一个$ FILE

答案 1 :(得分:0)

但我认为你可以mput /home/myAcct/SQLbackups/$FILEmput *.sql吗?或者如果你需要使用put放置几个文件,那么你需要通过某种循环逐个进行。

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