shell脚本如何将字符转化为数字 linux shell不同进制数据转换?

[更新]
·
·
分类:互联网
2667 阅读

linux

linux shell不同进制数据转换?

shell不同进制数据转换?

shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头. 才可以表示其它进制类型数值。如:以 0 开头就是 8 进制.以0x 开头就是16 进制数.使用 BASE#NUMBER 这种形式可以表示其它进制.BASE值:2-64.
使用方法:
其它进制转为10进制
八进制转十进制:
[ ~]$ ((num0123))
[ ~]$ echo $num
83[ ~]$ ((num8#123))
[ ~]$ echo $num
83((表达式)),(())里面可以是任意数据表达式。如果前面加入:”$”可以读取计算结果。
十六进制转十进制:
[ ~]$ ((num0xff))
[ ~]$ echo $num
255
[ ~]$ ((num16#ff))
[ ~]$ echo $num
255base-32转十进制:
[ ~]$ ((num32#ffff))
[ ~]$ echo $num
507375base64转十进制:
[ ~]$ ((num64#abc_))
[ ~]$ echo $num
2667327二进制转十进制
[ ~]$ ((num2#11111111))
[ ~]$ echo $num
255
十进制转为其它进制
十进制转八进制
这里使用到:bc外部命令完成。bc命令格式转换为:echo

shell脚本和什么区别?

可用于判断变量是否相等, 除了可用于判断变量是否相等外,还可以表示赋值。 与 在 [ ] 中表示判断(字符串比较)时是等价的,例如:s1foos2foo[ $s1$2 ] echo equal[ $s1$2 ] echo equal最后两个语句是等价的在(())中表示赋值,表示判断(整数比较),它们不等价,比如((n5))echo $n((n5)) echo equal((n5))表示赋值,((n5))表示判断。