推荐答案
// www.javascriptcn.com code example
#!/bin/bash
# 执行外部命令
ls /nonexistent_directory
# 检查命令的返回值
if [ $? -eq 0 ]; then
echo "命令执行成功"
else
echo "命令执行失败"
fi本题详细解读
在Shell脚本中,外部命令的返回值可以通过特殊变量 $? 来获取。$? 变量存储了上一个命令的退出状态码。通常情况下,返回值为 0 表示命令执行成功,非 0 值表示命令执行失败。
1. 获取返回值
- 使用
$?可以获取上一个命令的返回值。 - 例如,
ls /nonexistent_directory命令执行后,$?将存储该命令的返回值。
2. 判断返回值
- 通过
if语句可以判断命令是否执行成功。 - 例如,
if [ $? -eq 0 ]; then表示如果上一个命令的返回值为0,则执行成功。
3. 处理返回值
- 根据返回值的不同,可以执行不同的操作。
- 例如,如果命令执行失败,可以输出错误信息或执行其他补救措施。
4. 示例代码
- 示例代码中,
ls /nonexistent_directory命令尝试列出一个不存在的目录,因此会返回非0值。 - 通过
if [ $? -eq 0 ]; then判断命令是否成功,并输出相应的信息。
通过这种方式,Shell脚本可以有效地处理外部命令的返回值,并根据返回值执行不同的逻辑。