在 Linux 系统中,每个执行的命令都会返回一个状态码,也称为返回值(exit status)。这个状态码是一个整数,用于表示命令执行的结果。通常情况下,0 表示命令执行成功,其他非 0 整数则表示命令执行失败或出现了错误。这个返回值会被 shell 处理,作为命令执行后的一个状态信息,可以通过 $?
变量获取。
例如,当我们在终端中执行一个命令 ls
,会列出当前目录下的文件和子目录。如果命令执行成功且有列表,则命令的返回值为 0;如果目录为空,返回值也为 0;如果命令执行失败,比如当前目录不存在或者没有读取权限等情况,返回值则为非 0 整数。
我们可以使用 echo $?
命令来查看上一个命令的返回值。比如,在终端中输入如下命令:
```bash
$ ls /tmp
```
如果 /tmp
目录存在,则命令执行成功,返回值为 0。然后我们可以输入 echo $?
来查看上一个命令的返回值:
```bash
$$ echo $?
0
```
如果 /tmp
目录不存在,命令执行失败,返回值则为非 0 整数,如下所示:
```bash
$ ls /tmp1
ls: cannot access '/tmp1': No such file or directory
$$ echo $?
2
我们可以通过命令的返回值判断一个命令是否执行成功。