포터블기기 강좌


coin_price_capt.png


각 거래소의 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

번호 제목 작성자 작성일 조회
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] file 맑은하늘 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] file 파리 07.16 3220
32 노키아 N5800 하드리셋 방법 [3] 준용군 07.12 3374
31 위룰 하고 싶은데, 미국계정으로 앱스토어 접속해야하나요? [2] 바보남자 07.02 3327
30 iBooks 의 화끈한 샘플 양 [9] file 파리 06.24 3320
29 EKEN M001 안드로이드 타블렛 FAQs [7] 성야무인 06.20 3368
28 EKEN M001 안드로이드 타블렛 플리뷰~~~ [17] file 성야무인 06.03 3737
27 휴대기기 이북리더 활용 [6] 마루 05.24 3345
26 VIA ARM 기반의 중국산 넷북 그리고 그 다양한 OS~~ [11] file 星夜舞人 04.26 4253
25 아이팟터치 사용자들을 위한 오페라 앱의 오프라인 저장 기능 [1] file minki 04.26 3541
24 아이폰 동기화 팁 (재생횟수, 별점 유지하기) 불량토끼 04.16 5773
23 노트북의 트랙패드나 마우스로 팜 그래피티 입력 하기. [2] file 거스파이 04.10 3804
22 VIA ARM 기반의 중국산 넷북과 그 기기를 최적화 시키는 방법... [15] file 성야무인 04.04 3743

오늘:
656
어제:
908
전체:
15,194,582