我需要从命令行程序中获取退出状态代码。不用担心,我用$?。但是对于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