【问题标题】:Passing parameter to FTP macro将参数传递给 FTP 宏
【发布时间】:2013-06-13 15:07:41
【问题描述】:

我开发了一个包含 FTP 调用的 bash 脚本。

因为我所做的操作是基于例程的,所以我在.netrc 中添加了一个macro 我的主目录中的文件。

这是我的宏的一个小例子

macdef getFile
        lcd ../../test/
        get test1.txt
        quit

在这个宏中,我正在更改本地目录并放置我想要的文件。

我想要参数化的是文件的名称。因为我总是在做相同的动作,但文件的名称不同。

当在 ftp 连接中调用时,是否有任何可能的方法将参数传递给宏?

类似的东西?

ftp>$ getFile anotherTestFile.txt

提前谢谢你

【问题讨论】:

    标签: linux bash shell scripting ftp


    【解决方案1】:

    我只需要做同样的事情。通常我会安装 ncftp 或其他更有用的东西,但我不能,所以我必须做一个 shell 脚本来完成它:

    1) 正确设置您的 .netrc 以处理登录、目录更改等。不要让宏退出或类似的事情,只要让它到达您希望文件去的位置,然后宏停止。就像你所做的一样,但我只是没有“退出”这一行。

    2) 使用以下内容制作一个 shell 脚本:

    #!/bin/bash
    if [[ -n "$1" ]]; then
      echo "put $1" > ftpCmdTemp
      ftp your.hostname.here < ftpCmdTemp
      rm ftpCmdTemp
    else
      echo "need a filename"
    fi
    

    3) 将其保存到路径中的某个位置,并使其可执行。我称之为“pushLog”,所以在我的例子中,“chmod +x pushLog”

    4) 现在我可以跑了 pushLog someLogFile.txt 它会转移我给它的任何东西(确保pushLog 在你的路径中等等。)

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多