0

我有一个关于“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。

请指教.....

4

1 回答 1

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

但正如你所看到的,这是一个坏主意。更好地编写可读且缩进良好的代码。

于 2013-10-15T19:14:45.867 回答