天天看點

shell筆記

一:exit(0)與exit(1)、return差別

       exit函數是退出應用程式,删除程序使用的記憶體空間,并将應用程式的一個狀态傳回給OS,這個狀态辨別了應用程式的一些運作資訊,這個資訊和機器和作業系統有關,一般是 0 為正常退出, 非0 為非正常退出。

       return傳回函數值,是關鍵字,它表示了調用堆棧的傳回,退出函數。

二:數學運算

  簡單運算:let,[ ],(( ))

    進階運算:expr,bc

1、let

  let是bash内置指令,可以實作簡單的算術運算和邏輯運算

#!/bin/bash


i=10
echo $i

let a=i+100
echo "a="$a
let b=$i+100
echo "b="$b

》10
》a=110
》b=110
      

  

2.[ ]

#!/bin/bash


i=10
echo $i
a=$[i+100]
echo "a="$a

b=$[$i+100]
echo "b="$b

》10
》a=110
》b=110
      

3.(( )) 

#!/bin/bash


i=10
echo $i
a=$((i+100))
echo "a="$a
b=$(($i+100))
echo "b="$b


》10
》a=110
》b=110
      

4.expr

#!/bin/bash


i=10
echo $i

#變量和運算符之間沒有空格
a=`expr $i+100`
echo "a="$a
#當變量和運算符有空格
b=`expr $i + 100`
echo "b="$b

》10
》a=10+100
》b=110
      
      

5.bc

 

bc

指令是一個支援精确的浮點運算的進階電腦,支援數學函數調用。

#!/bin/bash


i=10
j=3
a=`expr $i / $j`
echo "a="$a

b=`expr "scale=9; $i / $j" |bc`
echo "b="$b
~             

》a=3
》b=3.333333333
      

二:浮點數的比較

-eq 相等

-gt 大于

-lt小于

-a或者&& 和

-o或者||  或

#!/bin/bash

i=0.6

if [ $(echo "${i} >0" |bc) = 1 ];then
   echo "1111"
else
  echo "2222"
fi


》1111