shell脚本中未捕获错误代码

时间:2018-01-08 05:05:55

标签: unix ssh kerberos

我遇到的问题是我的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语句执行其他任务(lsrm等)。它们正常工作,并在发生故障时返回错误代码。

我不知道它是kinit是否存在问题,或者我的代码中缺少的其他内容。任何想法有什么不对?

0 个答案:

没有答案