linux sftp:文件传输错误

时间:2013-10-15 19:08:35

标签: linux shell unix sftp

我对“sftp”有一个小问题。

我有一个脚本,它只是将文件传输到远程sftp服务器。但是当这个脚本运行时,它在sftp失败并且我的脚本失败了。 所以,我必须手动传输文件,使用与我在脚本中使用的命令相同的命令,并且它工作正常。

所以我的问题是当我手动运行时sftp命令运行顺畅,但是当通过脚本运行相同的命令时会产生问题。

这是我正在使用的代码

sftp -v -b sftp_input.txt UserId@aa.bb.cc.dd 
if (($? > 0 ));
then
   echo "sftp  error. Exiting.."
   exit
fi

其中sftp_input.txt包含将文件放入远程服务器的cmd。

请建议.....

1 个答案:

答案 0 :(得分:0)

脚本无法正常工作,因为它格式不正确。您忘记将if语句分开,也忘记了结束fi。这是脚本的正确形式:

sftp -v -b sftp_input.txt UserId@aa.bb.cc.ddd
if (($? > 0 )); then
    echo "sftp error. Exiting.."
    exit
fi

如果你想要一行,那么:

sftp -v -b sftp_input.txt UserId@aa.bb.cc.ddd; if (($? > 0 )); then echo "sftp error. Exiting.."; exit; fi

但是你可以看到这是一个坏主意。最好编写可读和良好缩进的代码。