linux shell 不同进制之间转换

原创:http://297020555.blog.51cto.com/1396304/592030

 

#!/bin/bash
while true
do
echo "#############################################################"
echo "# Author:                netcat                             #"
echo "# Lable:                 jinzhi.sh                          #"
echo "# QQ:                    297020555                          #"
echo "# Create Date:           2011-06-17                         #"
echo "# Version:               v1.0                               #"
echo "#############################################################"
echo ""
echo "1  2 ---> 8"     #¶þ½øÖÆת»»³É°Ë½øÖÆ
echo "2  2 ---> 10"    #¶þ½øÖÆת»»³ÉÊ®½øÖÆ 
echo "3  2 ---> 16"    #¶þ½øÖÆת»»³ÉÊ®Áù½øÖÆ  
echo "4  8 ---> 2"     #°Ë½øÖÆת»»³É¶þ½øÖÆ 
echo "5  8 ---> 10"    #°Ë½øÖÆת»»³ÉÊ®½øÖÆ
echo "6  8 ---> 16"    #°Ë½øÖÆת»»³ÉÊ®Áù½øÖÆ
echo "7  10 ---> 2"    #Ê®½øÖÆת»»³É¶þ½øÖÆ
echo "8  10 ---> 8"    #Ê®½øÖÆת»»³É°Ë½øÖÆ
echo "9  10 ---> 16"   #Ê®½øÖÆת»»³ÉÊ®Áù½øÖÆ
echo "10 16 ---> 2"    #Ê®Áù½øÖÆת»»³É¶þ½øÖÆ
echo "11 16 ---> 8"    #Ê®Áù½øÖÆת»»³É°Ë½øÖÆ
echo "12 16 ---> 10"   #Ê®Áù½øÖÆת»»³ÉÊ®½øÖÆ
echo "13   exit"       #Í˳ö 
echo ""
echo "enter your select:"  #ÊäÈëÑ¡Ôñ
read ans                   #¶ÁÈ¡Ñ¡ÔñµÄÖµ£¬¸³Öµ¸øans
case $ans in               #¶ÁÈ¡$ansµÄÖµ
1)                         #Èç¹ûansΪ1ʱ
read -p  "enter your num:" num #ÊäÈëÄãҪת»»µÄÊý£¬¸³Öµ¸ønum
a=`echo $num|tr "[2-9][a-z][A-Z]" "[4-5][A-Z][a-z]"`  #¶Ônum½øÐÐÅжÏ
if [ $num != $a ]   #Èç¹ûnum²»µÈÓÚa
then
echo -e "\033[40;31;5m failt \033[0m"  #˵Ã÷ÊäÈëµÄnumÖµ²»·ûºÏ¶þ½øÖÆÊýµÄ±ê×¼£¨0ºÍ1£©  
sleep 2          #Í£¶Ù2s
else              #·ñÔòµÄ»°£¬num·ûºÏ¶þ½øÖƵıê×¼
result=`echo "obase=8;ibase=2;$num"|bc`  #°Ñnumת»»³É°Ë½øÖÆ£¬¸³Öµ¸øresult
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m" #Êä³öresultµÄÖµ
sleep 4     #Í£¶Ù4s
fi
;;
2)
read -p  "enter your num:" num
a=`echo $num|tr "[2-9][a-z][A-Z]" "[4-5][A-Z][a-z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=10;ibase=2;$num"|bc`  #ÐèҪעÒ⣺obaseÔÚÇ°£¬ibaseÔں󣬲»È»»á³ö´í
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
3)
read -p  "enter your num:" num
a=`echo $num|tr "[2-9][a-z][A-Z]" "[4-5][A-Z][a-z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=16;ibase=2;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
4)
read -p  "enter your num:" num
a=`echo $num|tr "[8-9][a-z][A-Z]" "[4-5][A-Z][a-z]"` #ÅжÏÊÇ·ñ·ûºÏ°Ë½øÖƱê×¼
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=2;ibase=8;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
5)
read -p  "enter your num:" num
a=`echo $num|tr "[8-9][a-z][A-Z]" "[4-5][A-Z][a-z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=10;ibase=8;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
6)
read -p  "enter your num:" num
a=`echo $num|tr "[8-9][a-z][A-Z]" "[4-5][A-Z][a-z]"` 
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=16;ibase=8;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
7)
read -p  "enter your num:" num
a=`echo $num|tr "[a-z][A-Z]" "[A-Z][a-z]"` #ÅжÏÊÇ·ñ·ûºÏÊ®½øÖƱê×¼
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=2;ibase=10;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
8)
read -p  "enter your num:" num
a=`echo $num|tr "[a-z][A-Z]" "[A-Z][a-z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=8;ibase=10;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
9)
read -p  "enter your num:" num
a=`echo $num|tr "[a-z][A-Z]" "[A-Z][a-z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
result=`echo "obase=16;ibase=10;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
10)
read -p  "enter your num:" num
a=`echo $num|tr "[g-z]" "[G-Z]"`  #ÅжÏÊÇ·ñ·ûºÏÊ®Áù½øÖƱê×¼
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
num=`echo $num|tr "[a-f]" "[A-F]"` #²»ÖªµÀΪʲô£¬Ê®Áù½øÖÆÖ»ÊDZð´óд×Öĸ£¬ËùÒÔÔÚÕâ°ÑСдµÄת³É´óд£¬´óдµÄ²»±ä
result=`echo "obase=2;ibase=16;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
11)
read -p  "enter your num:" num
a=`echo $num|tr "[g-z]" "[G-Z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
num=`echo $num|tr "[a-f]" "[A-F]"`
result=`echo "obase=8;ibase=16;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
12)
read -p  "enter your num:" num
a=`echo $num|tr "[g-z]" "[G-Z]"`
if [ $num != $a ]
then
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
else
num=`echo $num|tr "[a-f]" "[A-F]"`
result=`echo "obase=10;ibase=16;$num"|bc`
echo -e "\033[40;32;1m result is \033[40;31;5m $result\033[0m"
sleep 4
fi
;;
13)
exit
;;
*)
echo -e "\033[40;31;5m failt \033[0m"
sleep 2
;;
esac
done
posted @ 2012-03-19 14:15  maadiah  阅读(278)  评论(0编辑  收藏  举报