我想就检查 shell 脚本的错误发表意见。我支持的系统包含一个由另一个应用程序(java)多次运行的简单 shell 脚本。java调用一个shell脚本,执行ftp连接打开,移动本地目录,mget命令,最后是一个再见命令。然后它检查 $? 在再见命令之后。
我知道首先这段代码是可疑的,因为它应该只检查 bye 命令,但它会间歇性地导致错误。我已经要求 UNIX 管理员查看系统中是否存在日志错误,但他们说没有。
基本上脚本的一般结构是:
sftp -oPort=<port forwarding port> <ip and user> <<==
lcd <some variable>
mget <some variable>
bye
rtn=$?
if [ ${rtn} != 0 ]
then
exit 1
fi
exit 0
任何想法为什么$?有时返回非零?