Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > b611ea73723a8287cce23d3124a6eeea > files > 132

howto-sgml-ko-2006-5mdv2010.0.noarch.rpm

:
##########################################################################
# Shellscript:	base.sh - ¼ýÀÚ¸¦ ´Ù¸¥ Áø¹ýÀ¸·Î º¸¿©ÁÜ(Bourne Shell)
# Author     :	Heiner Steven (heiner.steven@odn.de)
# Date       :	07-03-95
# Category   :	Desktop
# $Id: base.sh,v 1.2 2000/02/06 19:55:35 heiner Exp $
##########################################################################
# Description
#
# Changes
# 21-03-95 stv	ÀÔ·ÂÀÌ 0xb ÀÏ °æ¿ì »ý±â´Â ¿¡·¯ °íħ(0.2)
##########################################################################

# ==> ½ºÅ©¸³Æ® ÀúÀÚÀÇ Çã¶ôÇÏ¿¡ »ç¿ëÇÔ.
# ==> ÀÌ Ç¥½Ã´Â ÀÌ ¹®¼­ÀÇ ÀúÀÚ°¡ ÁÖ¼®À» ºÙÀÎ °ÍÀÓ.

NOARGS=65
PN=`basename "$0"`			       # ÇÁ·Î±×·¥ À̸§
VER=`echo '$Revision: 1.2 $' | cut -d' ' -f2`  # ==> VER=1.2

Usage () {
    echo "$PN - ¼ýÀÚ¸¦ ´Ù¸¥ Áø¹ýÀ¸·Î º¸¿©ÁÜ, $VER (stv '95)
»ç¿ë¹ý: $PN [¼ýÀÚ ...]

¼ýÀÚ¸¦ ¾Ë·ÁÁÖÁö ¾ÊÀ¸¸é Ç¥ÁØ ÀԷ¿¡¼­ ÀнÀ´Ï´Ù.
°¡´ÉÇÑ ¼ýÀڷδÂ
    2 Áø¼ö		0b ·Î ½ÃÀÛ(Áï, 0b1100)
    8 Áø¼ö		0 À¸·Î ½ÃÀÛ(Áï, 014)
    16 Áø¼ö		0x ·Î ½ÃÀÛ(Áï, 0xc)
    10 Áø¼ö		±× ¿Ü(Áï, 12)" >&2
    exit $NOARGS 
}   # ==> »ç¿ë¹ýÀ» ¾Ë·Á ÁÖ´Â ÇÔ¼ö.

Msg () {
    for i   # ==> in [list] °¡ ºüÁ® ÀÖ½À´Ï´Ù.
    do echo "$PN: $i" >&2
    done
}

Fatal () { Msg "$@"; exit 66; }

PrintBases () {
    # ¼ýÀÚÀÇ Áø¹ýÀ» °áÁ¤.
    for i      # ==> in [list] °¡ ºüÁ® À־...
    do         # ==> ¸í·É¾îÁÙ ÀÎÀÚ(µé)¿¡ ´ëÇؼ­ µ¿ÀÛ.
	case "$i" in
	    0b*)		ibase=2;;	# 2Áø¼ö
	    0x*|[a-f]*|[A-F]*)	ibase=16;;	# 16Áø¼ö
	    0*)			ibase=8;;	# 8Áø¼ö
	    [1-9]*)		ibase=10;;	# 10Áø¼ö
	    *)
		Msg "ºÎÀûÀýÇÑ ¼ýÀÚ($i)¶ó ¹«½ÃÇÕ´Ï´Ù."
		continue;;
	esac

	# Á¢µÎ»ç¸¦ Á¦°ÅÇÏ°í, 16Áø¼ö¸¦ ´ë¹®ÀÚ·Î º¯È¯(bc¿¡¼­ ÇÊ¿äÇÔ).
	number=`echo "$i" | sed -e 's:^0[bBxX]::' | tr '[a-f]' '[A-F]'`
	# ==> sed ±¸ºÐÀÚ·Î "/"°¡ ¾Æ´Ñ ":"¸¦ ½è³×¿ä.

	# ÀÏ´Ü 10Áø¼ö·Î º¯È¯
	dec=`echo "ibase=$ibase; $number" | bc`  # ==> 'bc' ´Â °è»ê¿ë À¯Æ¿¸®Æ¼ÁÒ.
	case "$dec" in
	    [0-9]*)	;;			 # µÆ±º¿ä.
	    *)		continue;;		 # ¿¡·¯³×¿ä. ¹«½ÃÇÕ´Ï´Ù.
	esac

	# º¯È¯µÈ ¼ýÀÚµéÀ» ÇÑ ÁÙ·Î Ãâ·ÂÇÕ´Ï´Ù.
	# ==> 'here document' ´Â ¸í·É¾î ¸ñ·ÏÀ» 'bc'·Î ÀԷ½ÃÄÑ ÁÝ´Ï´Ù.
	echo `bc <<!
	    obase=16; "hex="; $dec
	    obase=10; "dec="; $dec
	    obase=8;  "oct="; $dec
	    obase=2;  "bin="; $dec
!
    ` | sed -e 's: :	:g'

    done
}

while [ $# -gt 0 ]
do
    case "$1" in
	--)	shift; break;;
	-h)	Usage;;                 # ==> µµ¿ò¸».
	-*)	Usage;;
	*)	break;;			# ù¹ø° ¼ýÀÚ.
    esac   # ==> ÀԷ¿¡ ´ëÇؼ­ ¿¡·¯ üũ¸¦ ´õ Çϸé Á» ´õ À¯¿ëÇÏ°Ô ¾µ ¼ö ÀÖÀ» °Ì´Ï´Ù.
    shift
done

if [ $# -gt 0 ]
then
    PrintBases "$@"
else					# Ç¥ÁØÀԷ¿¡¼­ Àбâ.
    while read line
    do
	PrintBases $line
    done
fi