Shell數字及日期運算

2021-09-11 03:30:27 字數 1566 閱讀 6519

兩邊沒有空格的=是賦值操作符,例如:number=6

加上空格的=是等量關係測試,例如:if [ 1 = 2 ];then ehco '1等於2'; else echo '1不等於2'; fi

n1=2;

n2=3;

let rs=n1+n2

echo

$rs## 自加操作

let n1++

echo n1;

## 自減操作

let n1--

let n1+=6

rs1=$[

$n1 + $n2

]rs1=$[

$n1 + 5 ]

rs1=

$(( $n1 +5))

rs2=

`expr 3 + 4`

rs3=

$(expr $n1 + 5)

小數點精度/進製轉換

echo

"4 * 0.25"

|bc

no=54

rs=`

echo

"$no * 1.5"|bc

`echo

$rs## 數值小數點精度

echo

"scale=2;22/7"|bc

## 進製轉換

no=4

echo

"obase=2;$no"|bc

no=100

echo

"obase=10;ibase=2;$no"|bc

# out base 十進位制 in base 二進位制 (預設為二進位制)

echo

"sqrt(100)"|bc

echo

"10^2"

|bc

# 以 date "+%格式" 的方式獲取  

# 例 20190220

%a : wed

%a : wednesday

%b : feb

%b : february

%d : 20

%d : mm/dd/yy 02/20/19

%y : 19

%y : 2019

%h:%m:%s 10:31:18

%n : 納秒 708342700

%s : 以秒為單位 1550629910

last_day=

'20190201'

bil_month=

`date -d "$last_day last month" +%y%m`

bil_month1=

`date -d "$last_day -2 month" +%y%m`

bil_month2=

`date -d "$last_day -3 month" +%y%m`

shell 數字運算

在 linux 的 shell 指令碼裡,變數預設都是字串的。以下面的指令碼為例 bin bash no1 4 no2 5如果你直接使用 符號 result no1 no2 echo result得到的結果不是 9,而是 45 字串。這就是 shell 指令碼中變數預設為字串導致的結果。那麼如何使得...

shell 數字運算

在 linux 的 shell 指令碼裡,變數預設都是字串的。以下面的指令碼為例 bin bash no1 4 no2 5如果你直接使用 符號 result no1 no2 echo result得到的結果不是 9,而是 45 字串。這就是 shell 指令碼中變數預設為字串導致的結果。那麼如何使得...

Linux date日期格式及加減運算

顯示時間是個常用的命令,在寫shell指令碼中也經常會用到與日期相關檔名或時間顯示。無論是linux還是windows下都是date命令。linux下date命令用法 date命令引數 date命令輸出顯示格式 以下是做的一些實驗,便於理解01 02 03 04 05 06 07 08 09 10 ...