포터블기기 강좌


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

번호 제목 작성자 작성일 조회
121 보조 뱅크 만들기.. [6] file 수원사랑 12.14 4439
120 파일을 암호화하는 강력한 프리웨어 AxCrypt [2] 피델리티 12.09 5284
119 원격 작업에서 원격지의 USB를 마음대로 뺐다가 끼워보자. [4] 피델리티 12.08 4557
118 [아이패드] 여럿이서 같이 할 수 있느 무료게임 globetrotters [1] 미케니컬 12.02 4733
117 [스압][엉성] Nook hd,hd+ 루팅및 apk설치법.. [2] 짐레이너 11.30 11069
116 p85HD 충전기 접촉 불량 해결 방구왕 11.29 5722
115 장문의 텍스트를 PC에서 안드로이드폰으로 보내자! Pass2phone!! [9] 애쉬 10.23 5174
114 AMD Brazos 계열 탑재 기기의 전압 다이어트 트윅 [1] RuBisCO 10.20 3489
113 아이폰 케이블 수리 [2] file jubilee 10.08 14759
112 Android 4.1.1 JellyBean 루팅하기 [20] file Lock3rz 09.30 9624
111 MMS 에 대한 이해 (OMA-MMS와 SKT-MMS 그리고 KT와 SK) [12] 피델리티 09.16 18423
110 화면 OFF시 WiFi가 끊어지는 문제 해결방법 [5] Lock3rz 08.12 4885
109 PD10 시스템 업그레이드 방법 [1] file 하늘마루 08.01 3358
108 Teclast P85 커스텀롬&정식 펌웨어 사이트 모음... [1] 만남 07.31 6287
107 영상통화어플 CIRCLE [4] file 섬나라 07.24 6385
106 [팁] 노트북 성능 비교 방법 [4] Freedom^^ 07.20 6656
105 자작 나만의 터치 펜 ...(수정판 버전 3) [8] file 유태신 05.30 6458
104 혹시 특정앱에서 외장SD카드에 쓰기가 안되신다면.... [1] 애쉬 05.17 4788
103 [입문자용] ADB 드라이버 강제 설치하기 [8] Lock3rz 05.12 19762
102 기기명 변경으로 어플 호환성 높이기.. [17] file 애쉬 05.09 17584

오늘:
17,289
어제:
851
전체:
15,167,514