解析错误:第 1 行第 10 列的数字文字无效

问题描述

我有这个脚本和这个启动错误(解析错误:第 1 行第 10 列的数字文字无效),我该怎么办?附注该文件是用 bash 编写的。

#!/bin/sh

DATA=$(curl -s 'https://api.coinmarketcap.com/v2/ticker/' | jq -r '.data ."1" .quotes .USD .price')
echo $DATA
#printf "%0.0f\n" $DATA

解决方法

使用有效的 API KEY,执行以下 curl 调用:

curl -H "X-CMC_PRO_API_KEY:$KEY" -H "Accept: application/json" \
-d "start=1&limit=5000&convert=USD" \
-G https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest 

产生有效的 JSON,jq 查询:

 jq '.data[0].quote.USD.price' 

收益

32884.18011827609

注意事项:

  • 数组由整数索引,而不是字符串;
  • jq 对数组的“索引原点”为 0;
  • 在这种情况下不需要 -r 选项。