bc 같은걸 쓰면 소숫점도 되지 않나요?
echo "$in0 - $in1" | bc
하면 되지 않을라나..
: 쉘 스크립트의 한계가 계산식에서 정수 연산 밖에 안된다는 점이
: 있더군요. 계산은 perl -e 로 불러서 하시는 것이 낳을 것 같다
: 는 생각입니다. ^^
:
: : 서버를 운용하다보면 가끔씩 트래픽을 보고싶을 때가 있는데.
: : 김정균님의 쉘스크립트를 수정한 것입니다.
: : 김정균님 한테는 죄송.
: :
: : 실행 예 )
: :
: : ./transfer eth0
: : 측정중입니다. 기다려주세요
: : 수신(in) 1 kbyte/s
: : 송신(out) 28 kbyte/s
: :
: :
: : #!/bin/sh
: : #
: : # Scripted by JoungKyun Kim
: : # 2001.2.15 http://www.oops.org : : # This Script follows GPL2 License
: :
: : if [ "$1" != "" ]; then
: : # ethnet device
: : ETH="$1:"
: : CHECK=/proc/net/dev
: : CAT=/bin/cat
: :
: : GREP="/bin/grep ${ETH}"
: : SED="sed -e s/${ETH}//"
: : UPTIME=/usr/bin/uptime
: :
: : # parcket user check
: : set `${CAT} ${CHECK} | ${GREP} | ${SED}`
: :
: : # Transmit packet
: : let "in1 = $1"
: : let "out1 = $9"
: :
: : echo "측정중입니다. 기다려주세요"
: : sleep 10
: :
: : set `${CAT} ${CHECK} | ${GREP} | ${SED}`
: :
: : let "in0 = $1"
: : let "out0 = $9"
: :
: : let " in = ($in0 - $in1)/(10*1024)"
: : let " out = ($out0 - $out1)/(10*1024)"
: : echo "수신(in) $in kbyte/s"
: : echo "송신(out) $out kbyte/s"
: :
: :
: : else
: : echo "USAGE:$0 [ethernet device no]"
: : echo "ex) ./$0 eth0"
: : fi
: :
: : exit 0--슬럼프...