【问题标题】:GET Dynamic Date file using SFTP? [duplicate]使用 SFTP 获取动态日期文件? [复制]
【发布时间】:2019-08-19 19:28:43
【问题描述】:

我正在创建一个 bash 文件,它将每天下载文件,但文件名是动态的,它会根据日期生成文件,例如 '20190819.log' 我的代码如下:

   export SSHPASS=$SFTP_PASS
   DATE=`$DATE -d "-1 day" +"%Y%m%d"`

   sshpass -e sftp -oBatchMode=no -b - $SFTP_USER@$SFTP_HOST<<-'EOF'
    mget $DATE.log
   EOF

但在 mget $DATE.log 行中,它将 $DATE 视为字符串。 需要帮助...提前致谢。

【问题讨论】:

  • 不要引用'EOF'。引号告诉 bash 不要扩展 here-doc 中的参数
  • @rici 那么我应该添加什么来代替 EOF 以使其正常工作?
  • EOF 没问题。只是丢掉引号。
  • @rici 很好,你可以添加答案以便我接受它......非常感谢

标签: bash ssh sftp


【解决方案1】:

当您在 here-doc 结束分隔符周围加上引号时(在本例中为 &lt;&lt;-'EOF'),您是在要求 shell 扩展 here-doc 中的参数。如果要扩展 shell 变量,请去掉引号 (&lt;&lt;-EOF)。

但在这种特殊情况下,您可能会发现scp 更易于使用。

【讨论】:

    猜你喜欢
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    相关资源
    最近更新 更多