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

从SQL文件提取服务器主版本号遇脚本报错,求解决方案

从SQL Dump提取服务器主版本号的解决方案

错误根源

你碰到的[: awk: integer expression expected错误,是因为变量赋值用了数组语法(),而非正确的命令替换语法$(),导致sqlver没拿到awk的输出结果,后续test命令([)判断时变量内容不符合预期,触发整数表达式错误。

正确实现方式

方案1:修正awk赋值逻辑

把错误的数组赋值改成命令替换,直接提取主版本号:

sqlver=$(awk '/Server version/ { split($NF, a, "."); print a[1] "." a[2] }' _schemas.sql)

方案2:grep+cut组合提取

先通过grep拿到完整版本号,再用cut截取主版本部分:

# 单行完成提取
sqlver=$(grep -Poe "-- Server version \K.*" _schemas.sql | cut -d '.' -f 1,2)

方案3:grep正则直接匹配主版本号

用Perl正则直接捕获数字.数字的主版本格式,一步到位:

sqlver=$(grep -Poe "-- Server version \K\d+\.\d+" _schemas.sql)

验证结果

赋值后可以打印变量确认:

echo "主版本号:$sqlver"

确保后续判断逻辑中,sqlver是有效的版本字符串(如5.1),避免再次触发表达式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:50:29