typora/daliy_note/8月归档/8.22/linux$.md
2024-12-12 10:48:55 +08:00

1.7 KiB
Raw Permalink Blame History

在 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,然后存储退出状态码,并根据状态码输出相应的消息。

总结

通过使用 $? 变量,你可以轻松地获取上一个命令的退出状态码,并根据该状态码执行相应的操作。这在编写脚本时特别有用,可以帮助你处理错误情况并进行调试。