2011-02-22 55 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會話中試試這些命令。做他們的工作?