You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中用if判断函数退出状态并修复脚本错误

Bash脚本检查命令退出状态的错误修复

你的脚本存在两个关键语法错误,导致运行时出现syntax error: unexpected end of file,以下是具体修改点:

1. 函数调用语法错误

原脚本最后一行check_command()是错误写法——Bash中调用函数不需要加括号,括号会被解析为新的函数定义开头,但后续没有闭合的代码块,因此触发"意外文件结束"错误。
修改后:check_command

2. if条件语句的空格缺失

if [$? -eq 0]中,[(test命令的简写)的右侧、]的左侧必须保留空格,否则Bash会将[$?识别为一个不存在的命令,引发语法错误。
修改后:if [ $? -eq 0 ]

修复后的完整脚本

#!/bin/bash

check_command(){
  if [ $? -eq 0 ]
  then
    echo "Command Executed"
  else
    echo "Command Failed"
  fi
}

ls -la
check_command

额外优化建议(可选)

依赖全局的$?可能在复杂脚本中出现状态覆盖问题,更可靠的方式是直接将命令的执行结果传入函数:

#!/bin/bash

check_command(){
  if [ $1 -eq 0 ]
  then
    echo "Command Executed"
  else
    echo "Command Failed"
  fi
}

ls -la
check_command $?

内容的提问来源于stack exchange,提问作者Mahmoud Abdel-Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:28:15