포터블기기 강좌


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

번호 제목 작성자 작성일 조회
21 초보자들을 위한 타오바오에서 중국 폰 구매시 주의 사항 [8] 풀맨 10.13 28883
20 부모들이 알아야 하는 아이들의 스마트폰 셋팅하는 법... (19금일까나??) [18] 星夜舞人 05.22 30520
19 중국산 태블릿 터치패널 교체 하기 [7] file 풀맨 01.23 30618
18 otp 인증 유지를, 다시 사용하고 싶을때 - 네이버 고객센터 안내 받음 맑은하늘 07.31 31498
17 뷰2와 Smart App Protector 연동 문제점 맑은하늘 09.12 31618
16 또 다른 MTK6589 루팅방법 [2] Lock3rz 07.22 31822
15 ZTE 번들 백업 어플 [4] file tomeast 08.23 31970
14 MTK 6577, 6589 루팅 방법 [14] file tomeast 05.31 32068
13 중국산 스마트폰 구입시 한국 사용 가능 여부 체크 포인트 [7] file tomeast 05.21 32385
12 아이튠즈에서 iOS 앱이 내 구매기록에서 사라졌을 때 [3] file 파리 02.04 32530
11 MT65xx Preloader 드라이버 설치 Lock3rz 07.24 32709
10 구형 안드로이드폰들에서 2-step verification 사용하여 구글계정관리하기 [4] scotch 09.23 32832
9 iPhone 이 진짜 벽돌이 되었다고 느낄때. [16] 김강욱 09.24 33442
8 안드로이드 어플에서 외부 USB 메모리, SD카드 쓰기 안될때 해결책 피델리티 07.18 33596
7 SmartQ Z-Watch의 배터리를 오래 사용할수 있는 팁입니다. [14] 저스틴 11.18 34948
6 [펌] 지메일 첨부 파일 삭제 및 용량 줄이는 방법 [4] 맑은하늘 08.23 36698
5 리눅스민트: 화면분할해서 윈도우배치하기 영진 02.05 40373
4 리눅스민트 : 구글드라이브 연동하기 2 영진 09.23 40469
3 리눅스: 구글tts를 이용하기 [1] 영진 10.01 40691
2 안드로이드 -> 아이폰 이전시 주의할 점 [1] matsal 11.22 41300

오늘:
145
어제:
641
전체:
15,212,598