Ftp

我在 .netrc 文件中定義了一個宏,但是當我從 ftp 執行它時,它顯示“找不到宏”

  • July 6, 2015

這是 .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

引用自:https://unix.stackexchange.com/questions/214127