Linux Shell 字符串转数字
原型: 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
版权声明:本文为博主原创文章,转载请附上博文链接!
更多推荐
所有评论(0)