将参数传递给FTP宏

时间:2013-06-13 15:07:41

标签: linux bash shell scripting ftp

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

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

这是我的宏

的一个小例子
macdef getFile
        lcd ../../test/
        get test1.txt
        quit

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

我想要参数化的是文件的名称。因为我总是使用相同的操作,但使用该文件的不同名称。

在ftp连接中调用时,有没有办法将参数传递给宏?

之类的东西?

ftp>$ getFile anotherTestFile.txt

提前谢谢

1 个答案:

答案 0 :(得分: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在你的路径中以及所有这些。)