Bash退出和退出状态码

本文介绍了Bash脚本中如何退出并传递退出状态码,以及如何反转一个条件的用法。退出状态码对于脚本的错误处理和流程控制至关重要,而条件反转则提供了一种在Bash中实现逻辑反转的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



-----------------------------------------------------------------Sun-------------------------------------------------------------------



一、退出状态码

1.退出

exit 被用来结束一个脚本,它也返回一个值,并且这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理。

2.退出状态码

每个命令都会返回一个退出状态码(有时候也被称为返回状态)。

成功的命令返回 0,不成功的命令返回非零值,非零值通常都被解释成一个错误码。

同样的,脚本中的函数和脚本本身也会返回退出状态码。在脚本或者是脚本函数中执行的最后的命令会决定退出状态码

在脚本中,exit nnn 命令将会nnn退出码传递给shell(nnn必须是十进制数,范围必须是0-255)。

当脚本以不带参数的exit命令来结束时,脚本的退出状态码就由脚本中最后执行的命令来决定(就是 exit 之前的命令)


#!/bin/bash
echo hello
echo $?        #退出状态为0,即命令正常执行

lskdf            #无效命令
echo $?       #状态码非零,命令执行失败

exit 113       #退出状态码
                   # echo $?  查看得知退出码为 113 
$? 指代的是上一条指令的执行结果。


二、反转一个条件的用法

#!/bin/bash

true
echo "exit status of \"true\" = $? "             #exit status of "true" = 0 


! true
echo "exit status of \"!true\" = $? "            #exit status of "! true" = 1

! 和指令间需要一个空格。

若是一个命令以!开头,会启用Bash的历史机制

 $ true
 $ echo $?
0
 $ !true
 $ true       //输入!true会自动在命令行弹出true
 $ echo $?
0
这一次就没有反转结果,只是重复了之前的命令true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值