2016-01-23 69 views
0

我想是这样的:如何做ftp,它不会在shell脚本中要求用户名和密码?

#!/bin/bash 
hostname="xx.xx.xx.xx" 
username="ftp" 
password="123456" 
ftp $username:[email protected]$hostname <<EOF 
read filename 
put $filename 
quit 
EOF 

erorr作为未来如下:

ftp: ftp:[email protected]: Name or service not known 
?Invalid command 
Not connected. 

如果我的问题是太容易了,请不要打扰回答。

我是初学者,并试图学习。任何帮助将不胜感激。

回答

1

您遇到的问题是,默认FTP客户端不允许您在命令行中指定用户和密码以及主机。它正在寻找名为ftp:[email protected]的主机,这显然不存在。你可以在命令行指定主机,但就是这样。这种情况和解决方案在this article中有详细描述,其中包含其他版本和示例。

的基本思想是:关闭“自动登录”与-n和指定的位置的文件内,而不是在命令行中的用户名和密码:

#!/bin/bash 
    hostname="xx.xx.xx.xx" 
    username="ftp" 
    password="123456" 
    ftp -n $hostname <<EOF 
    user $username $password 
    read $filename 
    put $filename 
    quit 
    EOF 

(请注意,我说的$到)

还有其他的FTP客户端允许在命令行中指定用户和密码(例如ncftp),但使用您看起来最简单的选项。

相关问题