linux 二进制转十进制脚本,linux下进制转换的shell脚本

#!/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]"` #不知道为什么,十六进制只是别大写字母,所以在这把小写的转成大写,大写的不变

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值