shell指令碼 命令

2021-08-29 01:40:25 字數 1476 閱讀 5863

命令連線符

;表示不管前面是否執行成功都要執行

&&表示前面執行成功才執行後面

||表示前面執行失敗才執行後面

read命令

read [選項] 值

read -p(提示語句) -n(字元個數) -t(時間秒) -s(不顯示)

運算子

expr 3 + 2

結果賦值

sum=`expr 3 + 2` 或者 sum=$((3 + 2))

乘法expr 3 \* 2 #需要轉義,*代表任意字元

expr `expr 3 + 2` \* 5   ==> (3 + 2)* 5

sum=`expr \`expr 3 + 2\` \* 5`   或者 sum=$(((3 + 2) * 5))

$()和${}的區別

$()的用途和``一樣,迎來表示優先執行的命令

${}就是去變數

$(())適用於數值運算

條件判斷

內建test命令

內建test命令常用操作符號表示,將表示式寫在中

[ expression ] #expression前後各有空格

或者 test expression

測試範圍:整數、字串、檔案

字串測試

test str1 == str2

test str1 != str2

test str 測試字串是否不為空 test $num5;echo $?

test -n str1 測試字元不為空 需要給str1 加雙引號

test -z str1 測試字串為空

字串測試可以加邏輯符號

test -z str1 && echo invlid || echo ok

整數測試

test int1 -eq int2  --> ==

test int1 gt int2   -->  >

test int1 lt int2   --> <

test int1 ge int2   --> >=

test int1 le int2   -->  <=

test int1 ne int2   --> !=

檔案測試

test -d file 指定檔案是否目錄

test -e file 檔案是否存在

test -f file 指定檔案是否常規檔案

test -l file 檔案存在並且是乙個符號鏈結

test -r file 指定檔案是否可讀

test -w file 指定檔案是否可寫

test -x file 制定檔案是否可執行

多重條件測試

條件1 -a 條件2 邏輯與 兩個都成立,則為真

條件1 -o 條件2 邏輯或

!條件 邏輯非 取反

shell指令碼命令

1.建立檔案 home test test.log rootdir home test testfile rootdir test.log touch testfile 2.如果檔案存在則刪除檔案 if f testfile then rm rf testfile fi3.如果檔案不存在則建立檔案 ...

shell 指令碼命令學習

set u 指令碼中有不存在變數,丟擲異常 set x 用來在執行結果之前,先輸出執行的哪一行命令 set e 只要發生錯誤就終止執行 set euxo pipefail 放在所有shell指令碼的開頭 echo vars 傳遞給指令碼或函式的所有引數 echo vars count num 傳遞給...

shell指令碼 命令代換

什麼是命令代換 命令代換簡單來說就是在shell內部巢狀多條命令,一次執行得到結果 shell的命令代換有兩種方式可以實現 來看例子 既然這兩種方式都可以進行命令代換,那麼它們有什麼區別呢?支援命令巢狀使用,而反引號是不行的 這條命令雖然沒有什麼意義,但是很好的說明了 是支援巢狀使用的 反引號比較陳...