Contents

检查命令是否在Linux中成功执行

1. 概述

当我们在 Linux 中执行命令时,我们会得到系统响应,称为退出代码或退出状态。该命令的退出状态让我们了解该命令可能返回的成功、失败或其他意外结果。

在本教程中,我们将讨论如何在 Linux 中检查命令是否成功执行。

2. 使用 Bash if语句

if语句计算条件表达式的返回值。当我们把命令作为条件表达式时,它会返回执行命令的退出状态。

成功执行后,它将返回状态 zero。如果失败,它将返回一些其他状态。我们可以使用此状态来检查命令是否成功执行,并可以根据结果执行后续任务:

if command; then
    consequent task on success
else
    consequent task on failure
fi

例如,让我们创建一个 bash 脚本来检查命令是否正确执行。在这里,我们正在检查pwd 命令的结果,它显示了当前的工作目录。此外,我们将使用echo 命令作为后续命令来显示一些文本作为条件表达式的结果:

#!/bin/bash 
if pwd; then
    echo "Command Executed Successfully"
else
    echo "Command Failed"
fi

成功时,它应该显示当前目录路径并显示结果消息:

$ ./cmd_exec_test.sh
/home/HARDIK/demo
Command Executed Successfully

从上面的结果可以看出,运行脚本后,已经成功执行了pwd命令,并显示了当前目录。此外,它还显示了随后的echo命令的结果。

3. 使用特殊变量*$?* 带有if语句

Shell 将几个参数视为特殊变量。$?特殊变量扩展为最后执行命令的退出状态。通过将该值与预期值进行比较,我们可以检查命令是否已成功执行。

我们可以使用二进制比较运算符eq来检查上一个命令的结果,存储在*$?* 多变的:

#!/bin/bash
pwd 
if [ $? -eq 0 ]; then
    echo "Command Executed Successfully"
else
    echo "Command Failed"
fi

成功执行此脚本后,pwd命令将显示当前工作目录。此外,它将状态返回为零:

$ ./cmd_exec_test.sh 
/home/HARDIK/demo
Command Executed Successfully