监控BASH脚本执行的命令的退出状态.250108

解释代码: if [ $? -eq 0 ]; then

在 Bash 脚本中,$? 是一个特殊的变量,它表示上一个执行的命令的退出状态。在 Unix-like系统中,命令成功执行通常返回 0,而非零的返回值通常表示命令执行失败或发生错误。

if [ $? -eq 0 ]; then 这行代码的意思是:

if: Bash 中的条件语句关键字,用于开始一个条件判断。
[: 测试命令的开始,与 ] 配对使用。
$?: 上一个命令的退出状态。
-eq 0: 检查 $? 是否“等于(equal)”0。
then: 如果 [ $? -eq 0 ] 的结果为真(即上一个命令成功执行),则执行 then 后面的代码块。

如果上一个命令成功执行,退出状态将会是 0,if 条件将评估为真,然后执行 then 后面的代码块。如果上一个命令失败,退出状态将非 0,if 条件将评估为假,then 后面的代码块将不会执行,脚本会继续执行 else 部分(如果有的话)或者跳过整个 if 块。

例如:

npm install --registry=https://registry.npmmirror.com

if [ $? -eq 0 ];then
	echo "=======================npm install end ======================="
else
	echo "=======================npm install error  ======================="
  exit -1;
fi
posted @ 2025-01-08 09:27  中国的Amadeus  阅读(35)  评论(0)    收藏  举报