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

如何从JSON获取最高收益加密货币?Bash动态挖矿脚本开发问题

搞定动态挖矿币种切换:用jq解析whattomine API的实操方案

嘿,我来帮你解决这个Bash脚本的问题!你已经拿到了whattomine的coins.json数据,接下来用jq提取收益最高的币种其实很简单,我给你两种靠谱的方案,还有完整的脚本示例。

首先得说下这个API的结构:它返回的是一个JSON对象,每个键就是币种名称,对应的值里包含你要的profitability24字段。咱们分两种情况来处理:

方案1:直接取首项(如果API已经按收益排序)

你提到JSON里的首项就是收益最高的币种——如果whattomine确实是按profitability24降序返回的,那直接取第一个键就行,超简单:

# 拉取数据并提取首个币种(收益最高)
top_coin=$(curl -s http://whattomine.com/coins.json | jq -r 'keys[0]')

echo "当前最赚的币种是:$top_coin"

这里keys[0]是取出JSON对象的第一个键,-r参数让jq返回不带引号的纯文本,方便后续脚本使用。

方案2:手动筛选最高收益(更稳妥)

要是担心哪天API的排序规则变了,咱们就手动遍历所有币种,找出profitability24最大的那个,这样更可靠:

# 筛选出profitability24最高的币种
top_coin=$(curl -s http://whattomine.com/coins.json | jq -r 'to_entries | sort_by(.value.profitability24) | last | .key')

echo "当前收益最高的币种是:$top_coin"

我给你拆解开这个jq命令的逻辑:

  • to_entries:把顶层的JSON对象转换成键值对数组,每个元素是{"key": "币种名", "value": {"profitability24": ...}}这样的结构
  • sort_by(.value.profitability24):按profitability24的值从小到大排序
  • last:取排序后的最后一个元素(也就是收益最高的那个)
  • .key:提取这个元素的键,也就是咱们要的币种名称

完整的动态切换脚本

把这些逻辑整合起来,再加上错误检查(比如jq有没有装、API能不能连上),就是一个能用的脚本了:

#!/bin/bash

# 先检查jq有没有安装,没有的话提示用户
if ! command -v jq &> /dev/null; then
    echo "哎,jq工具没装哦!先装一下:Ubuntu/Debian用sudo apt install jq,Mac用brew install jq"
    exit 1
fi

echo "正在拉取最新挖矿收益数据..."
# 拉取API数据存到变量里
coin_data=$(curl -s http://whattomine.com/coins.json)

# 检查curl有没有成功拿到数据
if [ $? -ne 0 ]; then
    echo "糟糕,连不上whattomine的API!检查下网络哦"
    exit 1
fi

# 提取收益最高的币种
top_coin=$(echo "$coin_data" | jq -r 'to_entries | sort_by(.value.profitability24) | last | .key')

# 检查有没有提取到有效币种
if [ -z "$top_coin" ]; then
    echo "哎呀,没拿到有效的币种数据,可能API返回格式变了?"
    exit 1
fi

echo "当前收益最高的币种是:*$top_coin*"

# 这里就可以加你切换挖矿的逻辑啦,比如停掉当前挖矿进程,启动对应币种的挖矿命令
# 举个例子:
# echo "正在切换到$top_coin挖矿..."
# pkill your_miner_process_name
# /path/to/your/miner --coin $top_coin

小补充

要是你还想同时拿到收益数值,可以把jq命令改成这样:

top_coin_info=$(curl -s http://whattomine.com/coins.json | jq -r 'to_entries | sort_by(.value.profitability24) | last | "\(.key) 的24小时收益:\(.value.profitability24)"')
echo "$top_coin_info"

另外,注意别太频繁调用API哦,whattomine可能有访问限制,建议脚本里加个延迟,比如每小时检查一次(加个sleep 3600)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:37:07