shell命令退出状态码(shell退出码、shell状态码、命令退出码、命令状态码、$?、执行状态码)

在 shell 中,每个命令在执行完毕后都会返回一个退出状态码,用于告诉 shell 命令的执行结果。退出状态码是一个整数值,通常情况下,0 表示命令执行成功,而非 0 则表示命令执行失败或出现了错误。

当你执行一个命令时,可以使用 $? 来获取该命令的退出状态码。例如:

ls /path/to/nonexistent/file
echo $?

这段代码会尝试列出 /path/to/nonexistent/file,由于该文件不存在,ls 命令执行失败,其退出状态码为 2。因此,上面的代码会输出 2。

常见的命令退出状态码包括:

  • 0:表示命令执行成功。
  • 1:表示一般性未知错误。
  • 2:表示错误的使用命令参数。
  • 126:表示命令无法执行,可能由于权限问题或未找到该命令。
  • 127:表示找不到命令。
  • 128:表示命令执行失败。
  • 大于 128 的值:表示命令因收到信号而退出。

你可以使用 man 命令来查看命令的文档,其中会列出命令退出状态码的含义。

在 shell 脚本中,可以使用命令的退出状态码来判断命令执行是否成功,从而进行相应的处理。例如,可以使用 if 语句来判断命令执行是否成功:

if ls /path/to/nonexistent/file; then
  echo "File exists"
else
  echo "File does not exist"
fi

在上面的例子中,ls /path/to/nonexistent/file 命令会执行失败,因此 if 语句会执行 else 分支,输出 “File does not exist”。

猜你喜欢

转载自blog.csdn.net/Dontla/article/details/129836323