Ftp
我在 .netrc 文件中定義了一個宏,但是當我從 ftp 執行它時,它顯示“找不到宏”
這是 .netrc 文件和我使用的命令,知道這裡有什麼問題嗎?
[root@localhost ~]# cat /root/.netrc machine ftp.nyxdata.com login anonymous password empty macdef download_nyse_index cd /OpenBook/SymbolMapping bin get SymbolMap.xml /tmp/SymbolMap.xml quit [root@localhost ~]# ftp ftp> $ download_nyse_index 'download_nyse_index' macro not found. ftp> bye [root@localhost ~]# uname -a Linux localhost 3.17.8-200.fc20.i686+PAE #1 SMP Thu Jan 8 23:45:44 UTC 2015 i686 i686 i386 GNU/Linux [root@localhost ~]# which ftp /bin/ftp [root@localhost ~]# rpm -qf /bin/ftp ftp-0.17-65.fc20.i686
與
macdef
其他指令一樣(login
,password
等),僅適用於machine
它所在的 -headed 節。據我所知,將macdef
指令放在第一個machine
節之前沒有效果,並且沒有辦法讓宏可用在open
命令執行之前。如果您先打開與該站點的連接,您的宏將起作用:
$ ftp ftp.nyxdata.com ftp> $download_nyse_index
要編寫完整的 FTP 會話腳本,請將輸入傳遞給
ftp
命令。ftp ftp.nyxdata.com <<EOF cd /OpenBook/SymbolMapping bin get SymbolMap.xml /tmp/SymbolMap.xml quit EOF
如果您正在做這麼簡單的事情,請使用 wget 或 curl。如果你不希望密碼出現在命令行中,你可以輸入
~/.netrc
; wget 預設讀取它,如果您通過該-n
選項,curl 會讀取它。wget -O /tmp/SymbolMap.xml ftp://ftp.nyxdata.com/OpenBook/SymbolMapping/SymbolMap.xml