使用 DOY 作为文件名的一部分,通过 ftp 获取年份并下载文件

Getting day of year and downloading files via ftp using DOY as part of file name

我目前有一个 bash 脚本,它的唯一工作是每天登录到 FTP 服务器并下载文件。部分文件名是一年中的某一天 (DOY)。所以我得到当前日期并使用 %j 选项来获取 DOY。这是我的代码片段:

doy=$(date +%j)
mget filename_$doy*

当这个脚本运行时,它不仅会获取当前DOY的文件,还会获取之前的所有文件。因此,如果今天是 DOY 260,它会获取从 0 到 260 的所有文件。我只想要 260。我的 bash 脚本的其余部分是来自以下网站的模型:Automatic/periodic FTP download using cron jobs。我做错了什么?

编辑:根据@redneb 的请求的完整脚本

#!/bin/bash
HOST='ftp.server'   # change the ipaddress accordingly
USER='user'   # username also change
PASSWD='pass'    # password also change
ftp -inv $HOST<<EOF
quote USER $USER
quote PASS $PASSWD
bin
cd /filedirectory/
doy=$(date +%j)
mget filename_$doy*
bye
EOF

编辑 2:@Cyrus 的回答有效。这是我的最终工作脚本,以防其他人需要帮助。在登录 FTP 服务器之前,您需要输入 bash 命令。谢谢!

#!/bin/bash
HOST='ftp.server'   # change the ipaddress accordingly
USER='user'   # username also change
PASSWD='pass'    # password also change
doy=$(date +%j)
ftp -inv $HOST<<EOF
quote USER $USER
quote PASS $PASSWD
bin
cd /filedirectory/
mget filename_$doy*
bye
EOF

移动

doy=$(date +%j)

之前的一行
ftp -inv $HOST<<EOF