Shell指令碼語法解析

2021-12-30 08:07:44 字數 2303 閱讀 2288

數值運算:

1.給變數a,b賦值 [root@localhost ~]# a=11

[root@localhost ~]# b=22

a與b相加: [root@localhost ~]# d=(expr" role="presentation">(expr(expra + $b)

注意:「 + 」號左右兩側必須有空格

2.表示式求值:

expr1+3" role="presentation">expr1+3expr1+3 expr 2 – 1

expr1∗3使用∗要加轉義符" role="presentation">expr13使用要加轉義符expr13使用要加轉義符 echo expr 1 + 3

注意:表示式中,數字和運算子指教要有空格,出現在語句中要加反引號

3.「((表示式))」或「" role="presentation">((表示式))」或「((表示式))」或「[表示式]」

[root@localhost ~]# a=11

[root@localhost ~]# b=22

[root@localhost ~]# g=[" role="presentation">[[a + b ]     4.[root@localhost ~]# a=" role="presentation">b]

4.[root@localhost~]#a=b]4.[root@localhost~]#a=(( (11+3)*3/2 ))

雖然乘和除的優先順序高於加,但是通過小括號可以調整運算優先順序

5.[root@localhost ~]# b=$(( 14%3 ))

14 不能被 3 整除,餘數是 2

變數表示式:

1. 條件判斷命令test:test n1 -引數 n2(或 –引數 表示式) 真返回0,假返回1。

test語句的等價形式[ 1 –lt 4 ]

可用中括號代替test,把表示式括起來實現判斷

注意表示式與中括號間有空格

1.1. 整數,比較運算子 -lt 小於 -le 小於等於 -gt 大於

-ge 大於等於 -eq 等於 -ne 不等於

1.2. 檔案測試 -f 存在且是普通檔案 -d 存在且是目錄

-s 存在且位元組數大於0 -r 存在且可讀

-w 存在且可寫 -x 存在且可執行

如:test -d 「mydoc」 判斷mydoc是否是目錄

2. 字串測試 : test s 字串s非空

test s1 = s2 字串s1等於s2 test s1 != s2 字串s1不等於s2

test -z s字串長=0,即為空串 test -n 字串0

3. 其他引數

-a 邏輯與 -o邏輯或 ! 邏輯非

控制流程:

1. 分支結構

1.1. if分支

if [ # -eq 0 ]                         then                            echo 「輸入了0個引數」                     elif [" role="presentation">#-eq0]

then

echo「輸入了0個引數」

elif[#-eq0]thenecho「輸入了0個引數」elif[# -gt 1 ]

then

echo 「輸入了多個引數」

else

echo 「輸入了1個引數」

fi1.2. case

case 「$#」 in

0) echo 「輸入了0個引數」;;

1) echo 「輸入了1個引數」;;

*) echo 「輸入了多個引數」;;

esac

每個分支條件後必須以兩個分號結尾

2. 迴圈結構

for 例子——輸出100內10的倍數

for i in seq 1 9

doecho expr $i \* 10

done

乘號前加轉義符,與數字間要有空格

#for i in #大括號中不能有變數

3. read 變數1 [變數2 …]

鍵盤上讀取多個變數的值,或輸入資料時,以空格或者tab鍵作為分隔。

如果輸入的資料個數不夠,則從左到右對應賦值,沒有輸入的變數為空;

如果輸入的資料個數超了,則從左到右對應賦值,最後乙個變數被賦予剩餘的所 有資料。

Shell指令碼語法

定義單變數 p name kang 使用單變數 echo p name js 輸出kang.js echo p name.js 輸出kang.js cp p name.js copy.js 命令1 命令2 如果左邊的 命令1 執行成功,那麼右邊的 命令2 才會被執行。命令1 命令2 與 相反。如果 ...

shell指令碼 語法

條件測試 test 命令test 可以測試乙個條件是否成立,如果測試條件為真,則該命令的exitstatus為0,反之,exitstatus為1。注意 命令 各引數之間應該用空格隔開,以 結尾。但是 不是命令。測試命令 d dir 如果dir存在並且是乙個目錄則為真 f file 如果file存在並...

shell指令碼語法

測試乙個條件是否成立,python ubuntu 1004 var 2 python ubuntu 1004 test var python ubuntu 1004 echo 0python ubuntu 1004 test var gt 5 python ubuntu 1004 echo 1或者 ...