我使用这个简单的bash脚本从密码交换中提取价格。
Bid=$(curl -w "\n" --silent https://bittrex.com/api/v1.1/public/getticker?market=BTC-nanas | cut -c 46-55)
Ask=$(curl -w "\n" --silent https://bittrex.com/api/v1.1/public/getticker?market=BTC-nanas | cut -c 63-72)
Last=$(curl -w "\n" --silent https://bittrex.com/api/v1.1/public/getticker?market=BTC-nanas | cut -c 81-90)
while true;
do echo `date` Bid:$Bid, Ask:$Ask, Last:$Last;
sleep 5;
done
现在我想知道是否有任何方法可以将一个卷曲输出与之前的卷曲输出进行比较,以便在价格上涨/下降时添加颜色。
答案 0 :(得分:0)
在您的示例中,您只在循环外运行一次命令(对于每个变量),然后每次都打印相同的值。这是一个示例脚本,它将在循环中执行请求,然后检查出价是上升还是下降并根据需要添加颜色。如果符合您的目的,您可以将其扩展到其他字段:
increase='\033[0;31m' # red
decrease='\033[0;32m' # green
none='\033[0m' # to clear the color code
while /bin/true; do
results=$(curl -w "\n" --silent https://bittrex.com/api/v1.1/public/getticker?market=BTC-nanas)
cur_bid=$(echo $results | cut -c 46-55)
cur_ask=$(echo $results | cut -c 63-72)
cur_last=$(echo $results | cut -c 81-90)
if [[ -z $old_bid ]]; then
bid_out=$cur_bid
else
if (( $(bc <<< "$cur_bid > $old_bid" ) == 1 )); then
bid_out="${increase}${cur_bid}${none}"
elif (( $(bc <<< "$cur_bid < $old_bid" ) == 1 )); then
bid_out="${decrease}${cur_bid}${none}"
else
bid_out=$cur_bid
fi
fi
printf "$(date) Bid:$bid_out ...\n"
old_bid=$cur_bid
sleep 5
done
我只是使用你的代码来抓取卷曲结果的正确部分,尽管可能有一种比抓取特定字符集更可靠的方法。