2013-10-15 118 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 

但你可以看到这是一个坏主意。最好写出可读性好的代码。