Linux命令:exit
exit 命令
基本介绍
exit是 Linux 系统中用于退出当前 shell 的命令。它可以在任何 shell 中使用,包括登录 shell 和非登录 shell。exit还可以返回一个退出状态码给父进程。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
exit [STATUS]常用选项
参数
STATUS:退出状态码(0-255),0 表示成功,非零表示错误
使用示例
1. 退出当前 shell
exit2. 带退出状态码退出
exit0# 成功退出exit1# 失败退出exit2# 错误退出3. 在脚本中使用 exit
#!/bin/bashecho"Starting script..."# 检查参数if[$#-eq0];thenecho"Error: No arguments provided"exit1fiecho"Arguments received:$@"exit04. 在函数中使用 exit
#!/bin/bashcheck_file(){localfile=$1if[!-f"$file"];thenecho"Error: File$filenot found"exit1fiecho"File$fileexists"}check_file"important.txt"echo"Continuing..."5. 退出前执行清理
#!/bin/bash# 设置退出陷阱cleanup(){echo"Cleaning up..."# 清理操作}trapcleanup EXITecho"Doing work..."# 执行操作exit06. 在子 shell 中退出
# 在子 shell 中执行命令后退出(cd /tmp&&ls&&exit)echo"Back in parent shell"输出格式说明
成功执行
# 无输出,直接退出当前 shell退出状态码
# 在脚本中检查退出状态./script.shecho"Exit status:$?"工作原理
exit 执行流程
# 1. 用户执行 exit 命令exit0# 2. 执行退出陷阱(如果设置)# 3. 关闭当前 shell# 4. 返回退出状态码给父进程退出状态码说明
| 状态码 | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 通用错误 |
| 2 | 误用 shell 内置命令 |
| 126 | 命令不可执行 |
| 127 | 命令未找到 |
| 128+n | 信号 n 导致退出 |
实用技巧
在脚本中检查命令执行结果
#!/bin/bash# 执行命令并检查结果ls/nonexistent2>/dev/nullif[$?-ne0];thenecho"Command failed"exit1fi使用退出陷阱
#!/bin/bash# 设置退出陷阱trap'echo "Exiting with status $?"'EXITecho"Working..."exit5在循环中使用 exit
#!/bin/bashforiin123;doecho"Iteration$i"if[$i-eq2];thenecho"Exiting early"exit0fidoneecho"This won't be printed"返回特定退出码
#!/bin/bash# 根据条件返回不同退出码if[-f"/etc/passwd"];thenexit0# 文件存在elseexit1# 文件不存在fi相关命令
logout:退出登录 shelllogin:登录系统su:切换用户exec:替换当前进程kill:终止进程trap:设置信号处理
注意事项
- 任何 shell:exit 可以在任何 shell 中使用
- 退出状态码:退出状态码范围是 0-255
- 退出陷阱:可以使用 trap 设置退出前的清理操作
- 子 shell:exit 只退出当前 shell,不影响父 shell
- 信号处理:exit 会触发 EXIT 信号陷阱
总结
exit是 Linux 系统中用于退出当前 shell 的命令。它可以在任何 shell 中使用,并可以返回退出状态码给父进程。exit是脚本编写中常用的命令,用于控制脚本的执行流程。