리눅스: 가상화폐 가격 알아보기
2017.10.09 05:58

각 거래소의 api를 이용하지 않고 coinmarketcap.com웹을 정리해주는 배시 스크립트입니다
빠르게 가격확인을 해보려고 만들었네요
다음을 ~/bin에 coin이라는 이름으로 넣으시고 chmod +x ./coin 으로 실행권한 주시고 쓰시면 됩니다.
인자는 종목코드를 넣어도 되고 이름의 일부만 넣어도 되게 했습니다.
인자를 주지 않으면 상위 100개의 가상화폐 가격이 표시됩니다
watch -n 30 coin btc ethereum
이런식으로 비트코인과 이더리움의 시세가 업데이트되게 할 수도 있습니다.
-------------8<--------------8<--------------8<--------------8<--------------8<--------------8<--------------
#!/bin/bash
# usage: coin [btc eth etc...]
contents=$(w3m -dump coinmarketcap.com)
total=100
regex='^([0-9]+) +' # 1.rank
regex+='([A-Z]+)+ +' # 2.coin
regex+='([^$]+) +' # 3.name
regex+='(\$[0-9,]+) +' # 4. market cap
regex+='(\$[0-9,.]+) +' # 5. price
regex+='(\$[0-9,]+) +' # 6. volume
regex+='([0-9,.]+) +' # 7.circulating supply
regex+='([A-Z]*) +' # 8.optional unit
regex+='([-0-9,.]+%)' # 9.change
i=0
while read -r line
do
if [[ $line =~ $regex ]]; then
rank="${BASH_REMATCH[1]}"
coin="${BASH_REMATCH[2]}"
name="${BASH_REMATCH[3]}"
mcap="${BASH_REMATCH[4]}"
price="${BASH_REMATCH[5]}"
vol="${BASH_REMATCH[6]}"
change="${BASH_REMATCH[9]}"
# Filter the results if parameters are given.
if [ $# -gt 0 ]; then
found=0
for c in "$@"; do
c=$(echo "$c" | tr [a-z] [A-Z])
n=$(echo "$name" | tr [a-z] [A-Z])
if [[ "$c" == "$coin" || "$n" =~ .*"$c".* ]]; then
found=1
fi
done
if [ $found -eq 0 ]; then
continue
fi
fi
ranks[$i]=$rank
coins[$i]=$coin
names[$i]=$name
mcaps[$i]=$mcap
prices[$i]=$price
vols[$i]=$vol
changes[$i]=$change
if [ $coin == "BTC" ]; then
btc_mcap=$mcap
fi
i=$((i+1))
fi
if [ $i -eq $total ]; then
break
fi
done <<< "$(echo -e "$contents")"
# Print in a form
printf "%-3s | %+20s | %+9s | %+13s | %+12s | %+7s\n" \
"RNK" "NAME & SYMBOL" "PRICE" "Market Cap" "VOLUME(24h)" "CHNG(24h)"
echo "---------------------------------------------------------------------------------"
for (( i=0; i<${#ranks[@]}; i++ )); do
names[$i]=$(echo ${names[$i]} | sed 's/ $//') # remove trailing spaces
mcaps[$i]=$(echo ${mcaps[$i]} | sed 's/,[0-9]\+$/k/g') # shorten numbers
vols[$i]=$(echo ${vols[$i]} | sed 's/,[0-9]\+$/k/g')
printf "%-3s | %+20s | %+9s | %+13s | %+12s | %+7s\n" \
"${ranks[$i]}" "${names[$i]} ${coins[$i]}" "${prices[$i]}" \
"${mcaps[$i]}" "${vols[$i]}" "${changes[$i]}"
done
코멘트 0
번호 | 제목 | 작성자 | 작성일 | 조회 |
---|---|---|---|---|
191 | 리눅스: 어학공부를 위한 mp3 플레이어 [1] | 영진 | 01.18 | 84 |
190 |
리눅스민트: 구글캘린더 연결하기
[1]
![]() | 영진 | 12.19 | 95 |
189 | 리눅스 : 음성타이머를 만들어보자 [2] | 영진 | 12.08 | 98 |
188 | 리눅스데스크탑: 구글드라이브로 백업하기 [1] | 영진 | 11.21 | 106 |
187 | 리눅스데스크탑: 오늘의 인용문 표시하기 | 영진 | 10.19 | 122 |
186 | 리눅스 데스트탑 : i3wm [2] | 영진 | 10.17 | 145 |
185 | 시내먼 데스크탑: 비트코인 티커 만들기 (초간단) [1] | 영진 | 10.01 | 144 |
184 | 윈도에서 간단하게 배터리 수명 알아보기 [2] | matsal | 05.10 | 726 |
183 | USB Type-C 케이블과 USB 3.2 그래픽 출력단자 [2] | matsal | 01.01 | 3094 |
» |
리눅스: 가상화폐 가격 알아보기
![]() | 영진 | 10.09 | 3691 |
181 | 리눅스: xfce4 화면 확대하기 | 영진 | 09.29 | 3552 |
180 | USB Type-C: 극히 조심하세요. [7] | 사드사랑 | 07.20 | 4937 |
179 | 문리더 비슷한 iOS 용 텍스트 리더 [3] | matsal | 07.18 | 5021 |
178 | USB Type-C: 도깨비 방망이 ? [14] | 사드사랑 | 03.07 | 5516 |
177 |
리눅스: 데스크탑 노티피케이션 이용하기
[2]
![]() | 영진 | 06.24 | 6881 |
176 |
리눅스: xfce4터미널 폰트조정하기
[4]
![]() | 영진 | 06.18 | 6931 |
175 |
리눅스: vim을 이북리더로 쓰기
[2]
![]() | 영진 | 06.15 | 6880 |
174 |
리눅스: 온라인 사전을 사용하자
[1]
![]() | 영진 | 06.11 | 6649 |
173 |
리눅스: 뉴스를 터미널에서 보자
[2]
![]() | 영진 | 06.10 | 6617 |
172 |
리눅스: 대기오염지수 보기
[3]
![]() | 영진 | 06.08 | 6387 |