1.7 KiB
1.7 KiB
在 Linux 上,通过命令行执行命令时,命令的退出状态码(exit status)存储在特殊的环境变量 $?
中。退出状态码为 0 表示命令成功执行,非 0 表示命令执行失败。
如果你希望在执行命令后查看其退出状态码,可以使用如下方法:
-
执行命令:
your_command_here
-
查看退出状态码:
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
,然后存储退出状态码,并根据状态码输出相应的消息。
总结
通过使用 $?
变量,你可以轻松地获取上一个命令的退出状态码,并根据该状态码执行相应的操作。这在编写脚本时特别有用,可以帮助你处理错误情况并进行调试。