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

curl | jq解析报错:行2列0无效数字字面量,请求排查解决

问题分析与解决方案

你遇到的parse error: Invalid numeric literal错误,主要是两个核心问题加上潜在的变量问题导致的,咱们一步步拆解:

错误原因

  1. 脚本语法严重错误:你的#!/bin/bash声明后没有换行,直接跟了net=$(...)命令。这会让系统把后续所有内容都当成bash解释器的启动参数,而不是脚本里要执行的命令——相当于你直接跑了/bin/bash net=$(curl...),这完全不符合脚本逻辑,自然会导致curl请求没有正确发送,返回的不是预期的JSON数据,jq解析无效内容时就会抛出错误。
  2. 多余且破坏性的awk处理:就算修复了换行问题,你加的awk '/id/{print $1}'也是画蛇添足。curl返回的是单行完整JSON,awk默认按空格分割字段,整个JSON是一个无空格的字符串,所以print $1虽然看起来是整个JSON,但如果curl返回的是错误信息(比如token无效),这步处理会让jq拿到不完整的内容,直接触发解析错误。
  3. 潜在的token变量问题:如果$token没有正确赋值(比如为空、包含换行或特殊字符),curl发送的请求会被服务器拒绝,返回的是错误文本而非JSON,jq解析时同样会报错。

修复方案

基础版(最简正确脚本)

先把脚本的语法问题修复,去掉多余的awk,直接用jq解析完整JSON:

#!/bin/bash

# 请确保token变量已正确赋值(可以从环境变量读取,或在此处手动设置)
# 示例:token="your_valid_auth_token_here"

# 发送请求并提取network.id
net=$(curl -s -H "Content-Type: application/json" \
           -H "X-Auth-Token: $token" \
           -d '{"network": {"name": "net1"}}' \
           http://10.1.10.146:18090/network/v2.0/networks 2>&1 | jq -r '.network.id')

echo "$net"

健壮版(带错误检查)

如果需要排查问题更方便,可以添加token检查和响应验证,避免因为无效请求导致的模糊错误:

#!/bin/bash

# 先检查token是否已设置
if [ -z "${token}" ]; then
    echo "Error: 未设置X-Auth-Token变量,请先赋值"
    exit 1
fi

# 发送请求并完整捕获响应
response=$(curl -s -H "Content-Type: application/json" \
                -H "X-Auth-Token: $token" \
                -d '{"network": {"name": "net1"}}' \
                http://10.1.10.146:18090/network/v2.0/networks 2>&1)

# 尝试解析JSON,隐藏jq的错误输出
network_id=$(echo "$response" | jq -r '.network.id' 2>/dev/null)

# 判断解析是否成功
if [ -n "${network_id}" ] && [ "${network_id}" != "null" ]; then
    echo "成功获取网络ID: ${network_id}"
else
    echo "错误:无法解析网络ID,服务器响应内容如下:"
    echo "$response"
    exit 1
fi

验证步骤

  1. 先单独测试curl命令,确保返回的是你提供的完整JSON:
    curl -s -H "Content-Type: application/json" -H "X-Auth-Token: $token" -d '{"network": {"name": "net1"}}' http://10.1.10.146:18090/network/v2.0/networks
    
  2. 确认token变量的值正确,可以用echo $token查看。
  3. 运行修复后的脚本,应该能正常输出网络ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:51:37