exit命令

exit命令用来退出当前shell进程,并返回一个退出状态;使用$?可以接收这个退出状态。

exit命令可以接受一个整数值作为参数,代表退出状态。如果不指定,默认状态值是 0。

exit退出状态只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。

示例:

创建脚本test.sh,内容如下:

#! /bin/bash

if [ $# -ne 1 ]  # 如果传入参数个数等于1,则正常退出;否则非正常退出。
then
   echo "arguments not valid"
   exit 1
else
   echo "arguments valid"
   exit 0
fi

执行该脚本:

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。


项目分区导航函数 ⬅️ | 19-exit命令 | ➡️ 文件重定向