1. 程式人生 > >Linux Shell 字串轉數字

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!