리눅스: 가상화폐 가격 알아보기
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
번호 | 제목 | 작성자 | 작성일 | 조회 |
---|---|---|---|---|
41 | [팁] 구글 주소록 정렬 [2] | 맑은하늘 | 10.14 | 4576 |
40 | Palm Desktop to Google [6] | dow | 10.08 | 3224 |
39 | 갤럭시 S 간단 사용기.. (노란 액정, 하얀 액정) [3] | 상현아빠 | 10.03 | 4206 |
38 | [draft] 팜 to 안드로이드 주소록 옮기기 [7] | 맑은하늘 | 09.29 | 5665 |
37 | 다이어트 방법 공유? [8] | Freedom^^ | 09.16 | 3144 |
36 | [뽐뿌 사이트 / 휴대폰 - 간략 약어 해설] [6] | 맑은하늘 | 09.13 | 4031 |
35 | [팁] 아이폰과 나이키 플러스 [1] | 미케니컬 | 09.06 | 3838 |
34 | 윈모바일 기기 속도향상방법(PDA 포함)-아시는 분도 많을듯 합니다~ [4] | 아브라함 | 09.03 | 3403 |
33 | DIY 철상자를 책 테이블로 [6] | 파리 | 07.16 | 3220 |
32 | 노키아 N5800 하드리셋 방법 [3] | 준용군 | 07.12 | 3374 |
31 | 위룰 하고 싶은데, 미국계정으로 앱스토어 접속해야하나요? [2] | 바보남자 | 07.02 | 3327 |
30 | iBooks 의 화끈한 샘플 양 [9] | 파리 | 06.24 | 3320 |
29 | EKEN M001 안드로이드 타블렛 FAQs [7] | 성야무인 | 06.20 | 3368 |
28 | EKEN M001 안드로이드 타블렛 플리뷰~~~ [17] | 성야무인 | 06.03 | 3737 |
27 | 휴대기기 이북리더 활용 [6] | 마루 | 05.24 | 3345 |
26 | VIA ARM 기반의 중국산 넷북 그리고 그 다양한 OS~~ [11] | 星夜舞人 | 04.26 | 4253 |
25 | 아이팟터치 사용자들을 위한 오페라 앱의 오프라인 저장 기능 [1] | minki | 04.26 | 3541 |
24 | 아이폰 동기화 팁 (재생횟수, 별점 유지하기) | 불량토끼 | 04.16 | 5773 |
23 | 노트북의 트랙패드나 마우스로 팜 그래피티 입력 하기. [2] | 거스파이 | 04.10 | 3804 |
22 | VIA ARM 기반의 중국산 넷북과 그 기기를 최적화 시키는 방법... [15] | 성야무인 | 04.04 | 3743 |