shell指令碼程式設計

2021-10-04 06:25:19 字數 1432 閱讀 3893

1.shell語法結構

1.1 判斷

if [ "a" == "b" ];then

echo yes

elif [ "a" == "a" ];then

echo abc

else

echo no

fi 1.2 死迴圈

count=0

while true

do let count++;

echo count=$count

done

2.shll中常用的判斷

[ -f "***" ]		判斷***是否是乙個檔案

[ -x "***" ] 判斷***是否存在並有可執行許可權

[ -n "$var" ] 判斷$var變數是否有值

[ "$a" = "$b" ] 判斷$a和$b是否相等

-r file      使用者可讀為真

-w file      使用者可寫為真

-x file      使用者可執行為真

-f file      檔案為正規檔案為真

-d file      檔案為目錄為真

-c file      檔案為字元特殊檔案為真

-b file      檔案為塊特殊檔案為真

-s file      檔案大小非0時為真

-t file      當檔案描述符(預設為1)指定的裝置為終端時為真

-eq 當兩個引數相等時為真

-ne 當兩個引數不相等時為真

-lt 當引數1小於引數2時為真

-le 當引數1小於等於引數2時為真

-gt 當引數1大於引數2時為真

-ge 當引數1大於等於引數2時為真

字串判斷

str1 = str2     當兩個串有相同內容、長度時為真

str1 != str2     當串str1和str2不等時為真

-n str1       當串的長度大於0時為真(串非空)

-z str1       當串的長度為0時為真(空串)

3.shell中的傳參及判斷

$0 		這個程式的執行名字

$n 這個程式的第n個引數值,n=1..9

$* 這個程式的所有引數,此選項引數可超過9個。

$# 這個程式的引數個數

$$ 這個程式的pid(指令碼執行的當前程序id號)

$! 執行上乙個背景指令的pid(後台執行的最後乙個程序的程序id號)

$? 執行上乙個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)

$- 顯示shell使用的當前選項,與set命令功能相同

$@ 跟$*類似,但是可以當作陣列用

Shell 指令碼程式設計

1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...

Shell 指令碼程式設計

a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...

shell指令碼程式設計

今天看看shell程式設計,記錄下期中與想象中不一樣的地方 0.注釋用 1.shell的變數賦值 your name zhm 在your name和等號中間不能有空格,這和別的語言很不一樣,那麼在使用變數時和別的語言也不一樣,要使用 your name,一般要用 一定是大括號 2.那麼如何把乙個變數...