2016-01-23 68 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),但使用您看起來最簡單的選項。

相關問題