之前一直用的
BitBar
后面升级了,变成了xbar
,使用方法都差不多。然后现在给她整个基金的小插件。让我们来看看咋整的。
0.简介
Put anything in your macOS menu bar
xbar还是很好用的,正如官网上说的,将任何东西放置到你的菜单栏。之前用它显示水电燃气的状况,后面群晖总是宕机,然后就没用了。下面介绍一下xbar吧。xbar的项目地址,这个是xbar的官网地址。就是通过它来自定义你的菜单栏。
1.需求
最近股市不理想,很多朋友们都想关注自己的行情,因为不玩股票,买了点基金,所以就整了基金的插件。下面是完成的效果图,可以瞅瞅。
2.编码
需求有了,下面就是愉快的编码时间。这边用的shell
脚本,数据来源于天天基金网,需要事先安装下jq
jq是一个灵活的轻量级命令行JSON处理器,项目主页在这里,这是介绍jq的,也可以参考看看哈。
下面是插件的代码,大家可以拿去用。
更新记录:
20220520
:1、增加是否工作日判断,休市不现实涨幅信息
2、详细信息增加基金代码的显示
#!/usr/bin/env bash
# <xbar.title>Fund</xbar.title>
# <xbar.version>v0.0.0</xbar.version>
# <xbar.author>freefitter</xbar.author>
# <xbar.desc>show fund info</xbar.desc>
export PATH="/usr/local/bin:${PATH}"
getFirstInfo(){
fundcode=$(echo $fundList | cut -d " " -f1)
cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
retStr=$(curl -s "http://fundgz.1234567.com.cn/js/"$fundcode".js?rt="$cur_timestamp)
jsonStr=$(echo $retStr |grep -o '{.*}')
if [ -z "$jsonStr" ];then
echo "💰基金估值"
else
gszzl=$(echo "$jsonStr" | jq -r '.gszzl')
if [ `awk -v num1=$gszzl 'BEGIN{print(num1<=0)?"0":"1"}'` -eq 0 ];then
echo "💰 \033[44;1m$fundcode\033[0m \033[32;1m⬇$gszzl\033[0m"
else
echo "💰 \033[44;1m$fundcode\033[0m \033[31;1m⬆$gszzl\033[0m"
fi
fi
}
getFundInfo(){
fundcode=$1
cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
retStr=$(curl -s "http://fundgz.1234567.com.cn/js/"$fundcode".js?rt="$cur_timestamp)
# get json
jsonStr=$(echo $retStr |grep -o '{.*}')
if [ -z "$jsonStr" ];then
echo "["$fundcode"]当前基金没有相关信息"
else
gszzl=$(echo "$jsonStr" | jq -r '.gszzl')
gztime=$(echo "$jsonStr" | jq -r '.gztime')
gsz=$(echo "$jsonStr" | jq -r '.gsz')
dwjz=$(echo "$jsonStr" | jq -r '.dwjz')
name=$(echo "$jsonStr" | jq -r '.name')
echo "\033[44;1m$fundcode-$name \033[0m"
if [ `awk -v num1=$gszzl 'BEGIN{print(num1<=0)?"0":"1"}'` -eq 0 ];then
echo "估算涨幅: [ \033[32;1m $gszzl \033[0m ] 净值估算: [ \033[32;1m $gsz \033[0m ] 单位净值: [ \033[32;1m $dwjz \033[0m]"
else
echo "估算涨幅: [ \033[31;1m $gszzl \033[0m ] 净值估算: [ \033[31;1m $gsz \033[0m ] 单位净值: [ \033[31;1m $dwjz \033[0m]"
fi
echo "查看基金详细信息 | href=https://fund.eastmoney.com/$fundcode.html"
echo " 更新时间: $gztime"
fi
}
time=`date +%H:%M:%S`
## 修改此处 修改添加你的基金代码 start
fundList="007379 202015"
## 修改此处 修改添加你的基金代码 end
if [[ "$time" > "09:29:59" ]] && [[ "$time" < "11:31:00" ]] || [[ "$time" > "13:00:00" ]] && [[ "$time" < "15:30:00" ]]
then
echo $(getFirstInfo)
echo "---"
for i in $fundList;
do
echo -e "$(getFundInfo "$i")"
echo "---"
done
echo "Refresh... | refresh=true"
else
echo "🍵休市"
echo "---"
for i in $fundList;
do
echo -e "$(getFundInfo "$i")"
echo "---"
done
echo "Refresh... | refresh=true"
fi
命名方式记得看下文档介绍。001-fund.1m.sh
这边是我的命名方式,每分钟刷新一次。
使用方法就是直接替换基金列表里面的基金代码即可。
3.写在最后
祝大家股票涨涨涨📈,没事多动手,让自己的生活变简单。