: ########################################################################## # 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