我遇到的问题是我的shell脚本中的错误没有被捕获。下面的代码段:
ssh -n -q ${REMOTE_SERVER} "kinit -kt /etc/keytabs/authenticate1.keytab user1@email.com"
if [ $? -ne 0 ]
then
error="Can't kinit on SSH server"
fi
完整的功能是:
func_kinit_check() {
ssh -n -q ${REMOTE_SERVER} "kdestroy"
ssh -n -q ${REMOTE_SERVER} "kinit -kt /etc/keytabs/${USR}.keytab ${USR}@EMAIL.COM"
if [ $? -ne 0 ]; then
errorMessage="Can't kinit on SSH server"
fi
}
脚本运行完美但是,如果上面的代码段失败,则错误不会被下面的错误捕获语句捕获。在同一个脚本中还有几个这样的ssh
语句执行其他任务(ls
,rm
等)。它们正常工作,并在发生故障时返回错误代码。
我不知道它是kinit
是否存在问题,或者我的代码中缺少的其他内容。任何想法有什么不对?