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

Shell脚本条件语句执行异常,求助排查代码中存在的错误

Shell脚本条件语句错误排查修正

存在的问题

  • 命令替换赋值语法错误:cumonth= date +%m 中等号两侧不能有空格,获取命令执行结果需要用$()包裹,原写法会导致cumonth变量为空,同时直接执行date命令。
  • 条件判断语法不符合规范:[ $cumonth =10 ] 这类判断语句中,左方括号右侧、右方括号左侧、比较运算符两侧都必须加空格,且变量建议用双引号包裹,避免空值或带空格的内容导致语法报错。
  • echo命令前多余$符号:$echo $ytday、$echo $cmonth 中的$属于多余字符,调用命令不需要加前缀$,只有调用变量时才需要加$。
  • 缺少变量定义:脚本中调用的$ytday、$cmonth没有提前定义,执行时会输出空值。

修正后的完整代码

# 正确获取当前月份赋值给变量
cumonth=$(date +%m)
cudinamic=

# 条件判断补全空格,变量加双引号包裹
if [ "$cumonth" = "10" ];
then
    cudinamic=a
elif [ "$cumonth" = "11" ]; 
then
    cudinamic=b
elif [ "$cumonth" = "12" ];
then 
    cudinamic=c
else
    cudinamic=$cumonth 
fi
    
# 输出语句去掉多余的$,如果需要ytday、cmonth可自行补充定义
# echo $ytday  
# echo $cmonth 
echo "$cudinamic"

内容的提问来源于stack exchange,提问作者Luis Soriano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:04