--- title: "19-exit命令" created: 2025-11-25 tags: - 项目 aliases: - exit命令 --- # exit命令 exit命令用来退出当前shell进程,并返回一个退出状态;使用$?可以接收这个退出状态。 exit命令可以接受一个整数值作为参数,代表退出状态。如果不指定,默认状态值是 0。 exit退出状态只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。 示例: 创建脚本test.sh,内容如下: ```bash #! /bin/bash if [ $# -ne 1 ] # 如果传入参数个数等于1,则正常退出;否则非正常退出。 then echo "arguments not valid" exit 1 else echo "arguments valid" exit 0 fi ``` 执行该脚本: ```bash chmod +x test.sh ./test.sh acwing arguments valid echo $? # 传入一个参数,则正常退出,exit code为0 0 ./test.sh arguments not valid echo $? # 传入参数个数不是1,则非正常退出,exit code为1 1 ``` ## 常见退出状态 | exit code | 含义 | | --- | --- | | 0 | 成功执行 | | 1 | 一般性失败(脚本自定义错误常用) | | 2 | 用法/参数使用不当(shell 内置命令误用) | | 126 | 命令找到了,但没有执行权限 | | 127 | 命令未找到 | | 130 | 脚本被 Ctrl+C 终止(SIGINT) | ## exit 与函数 return 的区别 exit 结束的是**整个 shell 进程**;在函数体内,return 只结束**当前函数**,并把返回值交给 `$?`。函数执行完若没有 return,其退出状态就是函数体内最后一条命令的退出状态;想主动失败时用 `return 1`,想直接终止整个脚本才用 exit。 --- **项目分区导航**:[[18-函数|函数]] ⬅️ | 19-exit命令 | ➡️ [[20-文件重定向|文件重定向]]