如何检测命令错误码并使其返回成功状态码(Rundeck场景)
解决Rundeck密钥检测与流水线兼容问题
可以通过捕获原命令的退出码,同时强制让整个检测步骤返回0,避免流水线因非零码终止。以下是具体的shell脚本实现:
# 初始化变量存储密钥检测的退出码 KEY_CHECK_STATUS=0 # 执行密钥检测命令,若失败则将退出码存入变量 rd keys info -p keys/finance/password_a || KEY_CHECK_STATUS=$? # 根据检测结果判断是否创建密钥 if [ $KEY_CHECK_STATUS -ne 0 ]; then # 替换为实际的密钥创建命令,按需设置密钥值 rd keys create -p keys/finance/password_a -v "your_secure_password" fi
逻辑说明
rd keys info ... || KEY_CHECK_STATUS=$?:执行检测命令后,若命令返回非零码(密钥不存在),则将该错误码赋值给KEY_CHECK_STATUS;由于赋值操作本身的退出码为0,整个语句块会返回0,流水线不会触发终止逻辑。- 后续通过判断
KEY_CHECK_STATUS的值,仅在密钥不存在时执行创建操作,完全匹配需求。
内容的提问来源于stack exchange,提问作者user971741
相关产品推荐
相关产品推荐

