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))
----------------------------------------------
[[email protected] testshell]# echo $a
64
-------------64為10進位制輸出-------
例項2:16進位制字元32加上32
a='32'
value=$((16#${a}+0x32))
----------------------------------------------
[[email protected] 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
版權宣告:本文為博主原創文章,轉載請附上博文連結!