bash脚本的错误返回码不是我发送的值

NaturalBornCamper

我正在通过简单的nginx配置检查来测试bash脚本错误代码:

验证者

#!/bin/bash

# Error codes
ERROR_INVALID_NGINX_CONFIG=2

function validate() {
  if [ $1 -eq 0 ]; then
    echo OK
  else
    echo Invalid config
    exit $2
  fi
}

sudo nginx -t
validate $? $ERROR_INVALID_NGINX_CONFIG

然后,我有调用该脚本的调用者脚本,以检查是否存在错误:

呼叫者

#!/bin/bash

./verifier
if [ $? -eq 0 ]; then
  echo ok!
else
  echo Error code: $?
fi

然后,当我执行./caller并出现nginx config错误时,它总是显示错误代码1而不是2:

nginx: configuration file /etc/nginx/nginx.conf test failed
Invalid config
Error code: 1

我一定错过了一些简单的东西,任何人都可以看到吗?

连哈特·沃托克(Lienhart Woitok)

$?始终是最后一条命令的退出代码。在您的示例中,这可能是签入if

您需要为退出代码设置一个变量,并使用该变量:

#!/bin/bash

./verifier
RESULT=$?
if [ $RESULT -eq 0 ]; then
  echo ok!
else
  echo Error code: $RESULT
fi

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的bash函数返回意外的返回码?

来自分类Dev

easymock返回null而不是我的值

来自分类Dev

bash脚本的状态值错误

来自分类Dev

Bash脚本SFTP返回码比较

来自分类Dev

Python脚本返回数组而不是单个值

来自分类Dev

如果响应返回的状态码不是200,则停止我的NSURLSession吗?在SWIFT中

来自分类Dev

我的Ajax PHP脚本返回空值

来自分类Dev

原型正在返回我的函数而不是返回值

来自分类Dev

采购Bash脚本-返回错误,而不是退出?

来自分类Dev

Bash脚本等待进程并获取返回码

来自分类Dev

从bash脚本发送“ ENTER”

来自分类Dev

bash脚本的状态值错误

来自分类Dev

为什么我的代码返回错误的值?

来自分类Dev

我可以在bash函数/脚本中使用哪些返回/退出值?

来自分类Dev

bash脚本中的返回值错误

来自分类Dev

Bash脚本返回值和回声

来自分类Dev

Javascript for循环返回“ null”而不是我的值

来自分类Dev

Python脚本返回数组,而不是单个值

来自分类Dev

Bash脚本返回错误的PID

来自分类Dev

Rsync bash脚本错误(发送:找不到命令)

来自分类Dev

我的单独方法不断返回错误的值

来自分类Dev

生成bash脚本时,Expect脚本返回错误。为什么?

来自分类Dev

Bash脚本循环返回而不是退出

来自分类Dev

BASH-函数返回错误的值

来自分类Dev

GetSystemMetrics返回我的屏幕错误的值

来自分类Dev

Bash脚本打印了错误的值

来自分类Dev

如何在bash脚本中链接函数返回码

来自分类Dev

为什么我的文件不是来自 bash 脚本?

来自分类Dev

我的 sql 语法错误,用于通过 post 从 arduino 导入值到 php 脚本,该脚本应该将它们发送到我的 mysql 表

Related 相关文章

热门标签

归档