在Linux Shell中从'ftp'命令获取退出状态代码

我需要从命令行程序中获取退出状态代码。不用担心,我用$?。但是对于ftp,即使它没有连接,它也会打开ftp shell,所以我无法理解连接没有建立。

尝试以下代码以了解:

#!/bin/sh

ftp 1234567

OUT=$?

if [ $OUT -eq 0 ];then

echo "ftp OK"

else

echo "ftp Error: "$OUT

fi

exit 0

有什么帮助吗?谢谢菲利波

回答:

您应该从ftp命令中查找成功消息,而不是查找状态。这是“ 226传输完成”。您可以在系统上使用ftp手册进行确认。

200 PORT command successful.

150 Opening ASCII mode data connection for filename.

226 Transfer complete.

189 bytes sent in 0.145 seconds (0.8078 Kbytes/s)

这是一个示例脚本。

FTPLOG=/temp/ftplogfile

ftp -inv <<! > $FTPLOG

open server

user ftp pwd

put filename

close

quit

!

FTP_SUCCESS_MSG="226 Transfer complete"

if fgrep "$FTP_SUCCESS_MSG" $FTPLOG ;then

echo "ftp OK"

else

echo "ftp Error: "$OUT

fi

exit 0

以上是 在Linux Shell中从&#39;ftp&#39;命令获取退出状态代码 的全部内容, 来源链接: utcz.com/qa/429212.html

回到顶部