Uma diretiva macdef
, como as outras ( login
, password
, etc.), aplica-se apenas à sub-rotina machine
-headed em que está. Até onde eu sei, colocar uma macdef
diretiva antes que a primeira sub-rotina machine
não tenha efeito, e não há como ter uma macro disponível antes que o comando open
seja executado.
Sua macro funcionará se você abrir uma conexão ao site primeiro:
$ ftp ftp.nyxdata.com
ftp> $download_nyse_index
Para fazer o script de uma sessão FTP completa, passe a entrada para o comando ftp
.
ftp ftp.nyxdata.com <<EOF
cd /OpenBook/SymbolMapping
bin
get SymbolMap.xml /tmp/SymbolMap.xml
quit
EOF
Se você está fazendo algo simples, use o wget ou o curl. Se você não quer que a senha esteja na linha de comando, você pode colocar em ~/.netrc
; wget o lê por padrão, e curl lê-lo se você passar a opção -n
.
wget -O /tmp/SymbolMap.xml ftp://ftp.nyxdata.com/OpenBook/SymbolMapping/SymbolMap.xml