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

KSH脚本函数参数校验问题:if语句无法识别-s参数

KSH函数if语句失效问题解决

你的问题核心是命令行参数没有传递到函数内部:

  • 执行ksh chris_test.sh -s时,-s是传给脚本本身的参数,而非STATUS函数
  • 脚本最后调用STATUS时没有传递任何参数,导致函数内的$1为空,因此始终进入else分支

修复方法

把脚本收到的命令行参数传递给函数即可,修改脚本最后一行的函数调用:

# 传递所有脚本参数给函数
STATUS "$@"

如果只需要传递第一个参数,也可以写:

STATUS "$1"

修改后的完整脚本

STATUS() {

if [[ $1 == "-s" ]];then
   echo "--------------------------------------------------------"
   echo "Test success at: `date`"
   echo "--------------------------------------------------------"
else
   echo "--------------------------------------------------------"
   echo "Test fail at: `date`"
   echo "--------------------------------------------------------"
fi
}

STATUS "$@"

你之前尝试的转义引号、修改括号等操作都是针对语法的调整,但没有解决参数传递的核心问题,所以无法生效。

内容的提问来源于stack exchange,提问作者Christopher Karsten

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:37:36