Linux中let用法介紹

2021-07-31 13:16:31 字數 1610 閱讀 1077

shell程式中的操作預設都是字串操作,在要執行數**算符的時候可能得到意想不到的答案:

var=1

var=$var+1

echo $var

output:

1+1

從這個例子中可以看出shell字串連線的操作,需要注意的是空格。

在shell中可以使用let來指示下面是算術表示式,let表示式內變數不用加$

var=1

let "var+=1" 或 let var+=1 這種寫法運算子間不能有空格

echo $var

output:

2

這其中的let可以用(())代替,let ″j=i*6+2″等價於((j=i*6+2)), 

就像很多的迴圈中用法一樣

注意:let必須是完整的算術表示式,即有等號兩邊。(())、expr 可以只有等號右邊的計算,由$((...))、$(expr ...)、`expr ...` 檢視返回結果

var=1

((var++)) 檢視結果: echo $(())

echo $var

output:

2

還有一種寫法:

var=1

var=$[$var+1]

echo $var

output:

2

使用expr,需要注意的是其中的那個符號並不是單引號,而是「1」左邊的那個鍵

注意:將需要運算的表示式寫入在expr 後面,保證引數與運算符號中間有空格隔開。

var=1

var=`expr $var + 1` echo

echo $var

output:

2

1:在shell 中$() 與 ``等效。執行中間包含的命令語句,返回執行結果。

2:從效率來說let==(()) > expr > bc。let和(())執行是內建命令,使用相同的演算法。

3:let 和 expr 的運算是整數運算,不包括浮點預算。

4:expr和bc是外部程式,expr的體積幾乎等於bc的1/3,執行一次裝入記憶體所消耗的時間就不一樣。

5:從運算能力來說,bc排第一位。

var=1

var=`echo "scale=1;$var*2.0"|bc` bc預設輸出整數,用scale 指定小數點下位數 echo

echo $var

output:

2.0var=1

var=`echo "$var 1"|awk ''` echo

echo $var

output:

2

上面的這幾種做法都是只能處理整數運算,下面的這種做法是可以處理浮點數的:

上面的`符號跟上面的一樣,是1左邊的那個鍵,而bc是linux上面的乙個計算器,支援除位運算以外的所有執行。

另外乙個支援浮點運算的方法是awk:

$ c=$(awk 'begin')

$ echo $c

linux 中shift的用法介紹

在linux的shell程式設計中,編寫的指令碼需要傳到一乙個或者多個引數,可以通過 或 進行迴圈操作。若使用者要求shell在不知道變數個數的情況下,還能逐個處理引數,也就是在 1之後是 2,2之後是 3。在未執行shift命令之前 1是可用的,當使用shift命令之後,原來的 2會變成 1,並且...

linux中的make相關用法介紹

make 對於的原始碼包,是不能直接安裝的,需要進行編譯,可以通過make命令對源 編譯,make 是 linux 開發套件裡面自動化編譯的乙個控制程式,他通過借助 makefile 裡面編寫的編譯規範進行自動化的呼叫 gcc ld 以及執行某些需要的程式進行編譯的程式。一般情況下,他所使用的 ma...

Linux中find與grep的用法介紹

maxdepth 例子 find usr maxdepth 2 type d wc l統計 usr 目錄下深度為2的所有目錄檔案 exec 例子 find name sh exec ls l 列出當前目錄下所有的 sh 檔案,並執行ls l 命令 print 將檔案或目錄名稱列出到標準輸出。格式為每...