1

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

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

这是我的宏的一个小例子

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

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

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

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

就像是 ?

ftp>$ getFile anotherTestFile.txt

先感谢您

4

1 回答 1

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在你的路径中等等。)

于 2013-07-27T01:16:47.117 回答