我正在写一个会将文件上传到远程ftp服务器的脚本遇到很多麻烦。
我们有以这种格式生成文件的软件:
filename-`date +"%Y%m%d"`
我的问题是我无法通过ftp扩展该日期表达式,我希望能够做一个简单的事情:
put filename1-`date +"%Y%m%d"`
来自.netrc或来自stdin:
ftp -n ftp.server.com < ftpcommands.txt
我已经尝试了这些,但ftp从字面上理解了日期表达式,我得到了一个 “找不到filename1-`date .... file”
有谁知道我可以解决这个问题的方法?
另外,有没有人知道你是否可以在命令行中指定ftp子命令? 我在找到它的例子时遇到了麻烦。如果这是可能的话,那么bash会扩展日期表达式并将其传递给ftp,但我还没有找到适合该账单的选项。
我正在使用bash shell
谢谢!
答案 0 :(得分:3)
ftp程序不执行shell扩展。你能做的一件事是:
ftp -n ftp.server.com << EOF
# insert other commands here
put filename1-$(date +"%Y%m%d")
EOF
这里的文件将由Bash扩展,以做你想做的事。