原型: value=$((n#${key}Xm))

value:自定义变量得到运算的值

n:欲转成的进制数; 2进制就是2,10进制就是10

key:字符串变量

X:操作符;如+ - * /  &...

m:操作数

实例1:10进制字符32加上32

a='32'

value=$((10#${a}+32))

----------------------------------------------

[root@localhost testshell]# echo $a
64

-------------64为10进制输出-------


实例2:16进制字符32加上32

a='32'

value=$((16#${a}+0x32))

 
----------------------------------------------

[root@localhost testshell]# echo $a
100

-------------100为10进制输出-------

现实使用实例:

shell通过for循环读取文件后要对文件名进行转数字操作

比如将文件名-9361,前面补2个0

shell脚本如下:

#!/bin/bash
#rename files in your input path

for file in `ls $1`
do
    if [ -f $file ]
    then
        right=${file#*.}
        left=${file%.*}
        if [ $2 = ${right} ]
        then
            leftn=$((10#$left-9361))
            name="00${leftn}"
            rename ${left} ${name} ${file}
            echo "${file}-->${name}.${right}"
       else
           echo "${file} is not $2"
       fi
    else
       echo "${file} is not file!"
    fi
done
--------------------- 
作者:羽野子 
来源:CSDN 
原文:https://blog.csdn.net/whish1994/article/details/78379659 
版权声明:本文为博主原创文章,转载请附上博文链接!

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐