📜  在 Linux 中抓取加密货币价格的 Shell 脚本(1)

📅  最后修改于: 2023-12-03 15:37:23.930000             🧑  作者: Mango

在 Linux 中抓取加密货币价格的 Shell 脚本

如果你是一个加密货币投资者或者交易员,你可能需要知道当前市场上各种加密货币的价格。有许多的网站提供这样的服务,但如果你想在命令行中查看价格,就需要一些脚本来帮助你。

在这篇文章中,我们将介绍一个在 Linux 中抓取加密货币价格的 Shell 脚本。

功能介绍

这个 Shell 脚本可以帮助你快速地查看以下加密货币的实时价格:

  • 比特币 (BTC)
  • 以太坊 (ETH)
  • 莱特币 (LTC)
  • 瑞波币 (XRP)
  • 比特现金 (BCH)
  • 稳定币 USDT (USDT)
实现思路

在脚本中,我们将使用 CoinMarketCap API 来获取加密货币的价格。API 的使用非常简单,你只需要注册一个账号,然后获取一个 API Key,就可以开始使用了。

我们将用 cURL 命令来执行 HTTP 请求,获取数据后使用 sed 命令进行格式化并输出到命令行中。

代码实现

脚本的代码如下:

#!/bin/bash

# Change these variables to get different currencies and conversions
SYMBOLS=("BTC" "ETH" "LTC" "XRP" "BCH" "USDT")
CONVERT="USD"

# Replace this value with your own CoinMarketCap API key
API_KEY="your-api-key-here"

URL="https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest"

# Format the symbols into a comma-separated string
SYMBOLS_STRING=""
for symbol in ${SYMBOLS[@]}; do
  SYMBOLS_STRING="$SYMBOLS_STRING,$symbol"
done
SYMBOLS_STRING=${SYMBOLS_STRING:1}

# Make the HTTP request and format the JSON response using sed
curl -G \
  -H "Accept: application/json" \
  -H "X-CMC_PRO_API_KEY: $API_KEY" \
  --data-urlencode "symbol=$SYMBOLS_STRING" \
  --data-urlencode "convert=$CONVERT" \
  "$URL" \
  2>/dev/null |
  sed 's/[{}]/''/g' |
  awk -v RS=',"' -F: '/^price/ {print "  " $1 ": " $2}'

代码解析

首先,我们定义了一些变量来指定要获取的加密货币和相应的货币转换方式:

SYMBOLS=("BTC" "ETH" "LTC" "XRP" "BCH" "USDT")
CONVERT="USD"

接下来,我们需要使用 CoinMarketCap API 获取每种加密货币的价格。所以我们在 Shell 脚本中包含了一个 HTTP 请求,以获取最新的加密货币报价。我们需要使用 cURL 命令来执行 HTTP 请求。注意需要在 HTTP 请求中加入 API Key 来通过验证。

# Replace this value with your own CoinMarketCap API key
API_KEY="your-api-key-here"

URL="https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest"

# Make the HTTP request and format the JSON response using sed
curl -G \
  -H "Accept: application/json" \
  -H "X-CMC_PRO_API_KEY: $API_KEY" \
  --data-urlencode "symbol=$SYMBOLS_STRING" \
  --data-urlencode "convert=$CONVERT" \
  "$URL" \
  2>/dev/null |
  sed 's/[{}]/''/g' |
  awk -v RS=',"' -F: '/^price/ {print "  " $1 ": " $2}'

最后,我们使用 sed 命令格式化 JSON 响应,从中提取所需的信息,并使用 awk 命令在命令行中输出。这个脚本非常简单,但可以为你提供一个快速而简便的命令行工具来获取加密货币价格。

结论

恭喜你!现在你可以在命令行中快速地查询加密货币最新的市场价格了。这个 Shell 脚本不仅可以帮助你获得实时价格,而且还可以在你的 Shell 脚本中用于后续自动化处理。祝你好运!