我需要从命令行程序检索退出状态代码。不用担心,我用了 $?。
但对于 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)