📅  最后修改于: 2023-12-03 14:59:29.768000             🧑  作者: Mango
在 Shell 编程中,我们经常需要检查命令的返回值,以确保程序的正确性和可靠性。本文将介绍如何使用 Bash 脚本检查命令的返回值是否包含错误。
在 Bash 脚本中,我们可以使用 $?
变量来获取最近一次命令的返回值。$?
变量的值为 0 表示命令执行成功,非 0 值表示失败。
因此,我们可以使用以下语法检查命令是否执行成功:
command
if [[ $? -ne 0 ]]; then
echo "command failed"
fi
上面的代码首先执行命令 command
,然后检查 $?
的值是否为 0。如果不是,则表示命令执行失败,输出错误信息。
使用 $?
变量检查命令成功或失败的方式有些麻烦,可以使用以下简化方式:
set -e # 遇到错误则退出脚本
command
上面的代码中,使用 set -e
命令启用 Bash 的错误检测机制,即遇到任何非零值的返回结果就会立刻退出。因此,如果命令执行失败,则脚本会自动退出,无需再手动检查 $?
的值。
除了检查命令的返回值外,有时我们还需要检查命令的输出是否存在错误信息。可以使用以下方式检查命令的输出:
output=$(command 2>&1) # 将标准错误输出到标准输出,并保存到变量中
if echo "$output" | grep -q "error"; then
echo "command failed with error: $output"
fi
上面的代码中,使用 2>&1
将标准错误输出到标准输出中,并将结果保存到变量 output
中。然后使用 grep
命令检查是否存在错误信息。如果存在,则表示命令执行失败,输出错误信息。
在 Bash 脚本中,我们可以使用 $?
变量和 set -e
命令检查命令的返回值,使用 grep
命令检查命令的输出。这些技巧可以帮助我们编写更加可靠的 Shell 脚本。