typora/daliy_note/8月归档/8.22/linux$.md

90 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2024-12-11 21:48:55 -05:00
在 Linux 上通过命令行执行命令时命令的退出状态码exit status存储在特殊的环境变量 `$?` 中。退出状态码为 0 表示命令成功执行,非 0 表示命令执行失败。
如果你希望在执行命令后查看其退出状态码,可以使用如下方法:
1. **执行命令**
```
your_command_here
```
2. **查看退出状态码**
```
echo $?
```
例如:
```
ls /some/directory
echo $?
```
如果目录存在且命令成功,`echo $?` 将输出 `0`。如果目录不存在或发生错误,`echo $?` 将输出一个非零值,例如 `2`
### 示例
假设你运行以下命令来列出一个不存在的目录:
```
ls /nonexistent_directory
```
然后你可以查看退出状态码:
```
echo $?
```
假设目录 `/nonexistent_directory` 不存在,`ls` 命令将失败,`echo $?` 输出:
```
2
```
这表明 `ls` 命令未成功执行。
### 常见的退出状态码
- `0`:命令成功执行。
- `1`:一般性错误,例如权限问题。
- `2`:误用命令内建功能。
- `127`:命令未找到。
### 示例脚本
你可以将这些命令放入一个脚本中,以便更方便地查看退出状态码:
```
#!/bin/bash
your_command_here
status=$?
if [ $status -eq 0 ]; then
echo "Command succeeded"
else
echo "Command failed with exit status $status"
fi
```
这个脚本首先执行 `your_command_here`,然后存储退出状态码,并根据状态码输出相应的消息。
### 总结
通过使用 `$?` 变量,你可以轻松地获取上一个命令的退出状态码,并根据该状态码执行相应的操作。这在编写脚本时特别有用,可以帮助你处理错误情况并进行调试。