2013-10-15 108 views
0

我有一個關於「sftp」的小問題。linux sftp:文件傳輸錯誤

我有一個腳本,它只是將文件傳輸到遠程sftp服務器。但是當這個腳本運行時,它在sftp失敗,我的腳本失敗。 因此,我必須手動傳輸文件,使用與我在腳本中使用的命令相同的命令,並且它工作正常。

所以我的問題是,當我手動運行它時,sftp命令運行平穩,但在通過腳本運行同一命令時會產生問題。

這是我使用

sftp -v -b sftp_input.txt [email protected] 
if (($? > 0)); 
then 
    echo "sftp error. Exiting.." 
    exit 
fi 

其中sftp_input.txt包含CMD將文件放到遠程服務器的代碼。

請指教.....

回答

0

該腳本無法工作,因爲它的格式不正確。您忘記分開if聲明,並且忘記了關閉fi。這裏是您的腳本的正確形式:

sftp -v -b sftp_input.txt [email protected] 
if (($? > 0)); then 
    echo "sftp error. Exiting.." 
    exit 
fi 

如果你想這一切在同一行,則:

sftp -v -b sftp_input.txt [email protected]; if (($? > 0)); then echo "sftp error. Exiting.."; exit; fi 

但你可以看到這是一個壞主意。最好寫出可讀性好的代碼。