1.shell中的變數是不分資料型別的,統一按照字串來儲存

2. bash shell只能支援數學整數運算(zsh可以支援浮點)

3.以下都是在bash shell 下進行的數學運算

方法一使用方括號進行基本的整數運算:

#!/bin/bash


var1=1


var2=2


var=$[$var1+$var2]


echo "var=$var"

輸出結果:

[email protected]:~/xwh$ ./bc.sh 
var=3

解決bash shell 中無法計算浮點數的方法使用bc

基本格式:var =`echo "options;expresstion " |bc`

#!/bin/bash


var1=1


var2=2


var=`echo "scale=4;$var1+$var2"|bc`


echo "var=$var"

輸出結果:

[email protected]:~/xwh$ ./bc.sh 
var=3

以上只是適用較短的運算,如果有多個表示式這種方式就會有點問題,針對這個問題的解決方案就是重定向

基本格式:var=`bc<<EOF

options

statements

expresstions

EOF

`

#!/bin/bash


var1=1


var2=2


var3=3


var4=4


var=`bc<<EOF


        scale=4
        a=($var1+$var2)
        b=($var3+$var4)
        a+b             
        EOF
        `
echo "var=$var"

輸出結果:

[email protected]:~/xwh$ ./bc.sh 
./bc.sh: line 25: warning: here-document at line 18 delimited by end-of-file (wanted `EOF')
(standard_in) 6: illegal character: O
(standard_in) 6: syntax error
var=10

.