shell 語法08 shell主要語法結構

2022-03-15 19:57:35 字數 2501 閱讀 4044

單分支結構
if 《條件表示式》

then

指令if

if 《條件表示式》;then

指令if

雙分支結構
if 《條件表示式》

then

指令else

指令if

多分支結構
if 《條件表示式》

then

指令elif 《條件表示式》

then

指令elif 《條件表示式》

then

指令else

指令if

test條件表示式
if test 表示式

then

指令fi

條件表示式
if [ 字串或算術表示式 ]

then

指令if

條件表示式
if [[ 字串表示式 ]]

then

指令if

(())條件表示式
if ((算術表示式))

then

指令if

命令表示式
if 命令

then

指令if

function 函式名()
function 函式名
函式名()
case "變數" in

值1)指令1 ......

;;值2)

指令2 ......

;;*)

指令3 ......

esac

# 當條件成立是,進入迴圈執行指令

while 《條件表示式》

do 指令

done

# 當條件不成立是,進入迴圈執行指令

until 《條件表示式》

do 指令

done

for 變數名 in 變數取值列表

do 指令 ......

done

for ((exp1; exp2; exp3))

do 指令 ......

done

select 變數名 [ in 選單取值列表 ]

do 指令 ......

done

1、用小括號將變數值括起來賦值給陣列變數,每個變數值之間要用空格進行分隔
array=(value1 value2 value3 ......)
2、用小括號將變數值括起來,同時採用鍵值對的形式賦值。
array=([1]=one [2]=two [3]=three)
3、通過分別定義資料變數的方法來定義
array[0]=a;array[1]=b;array[2]=c;
4、動態地定義陣列變數,並使用命令的輸出結果作為陣列的內容
array=($(命令))

array=(`命令`)

列印指定元素
echo $
列印所有元素
echo $

echo $

列印陣列長度
echo $

echo $

用法

說明sh test.sh &

把指令碼test.sh放在後台執行

control + c

停止執行當前指令碼或任務

control + z

暫停執行當前指令碼或任務

bg把當前指令碼或任務放在後台執行

fg把當前指令碼或任務放在前台執行

jobs

檢視當前執行的指令碼或任務

kill

關閉執行的指令碼任務

break n

如果省略n,則表示跳出整個迴圈,n表示跳出迴圈的層數

continue n

如果省略n,則表示跳過本次迴圈,忽略本次迴圈的剩餘**,進入迴圈的下一次迴圈。n表示退到第n層繼續迴圈。

exit n

return n

用於在函式裡作為函式的返回值,以判斷函式執行是否正確。可通過$? 接收n值。

Shell總結08 shell內建命令

shell內部命令是由shell自身提供的,這裡會涉及到shell的相容性問題,其中通用特性的內建命令通常是從波恩shell繼承而來的 根據posix規範實現 每一種shell直譯器都支援而且行為也一致。命令功能行為 點號 在當前的環境中,從檔名中讀取並執行命令,與source等價 輸出重定向覆蓋模...

Shell學習之shell語法

shell指令碼就是將完成乙個任務的所有的命令按照執行的先後順序,自上而下寫入到乙個文字檔案中,然後給予執行許可權。shell指令碼的命名 名字要有意義 不超過30個位元組 sh結尾 名字不要太長 區分大小寫 shell指令碼格式 shell指令碼開頭必須指定指令碼執行環境 以 這個特殊符號組合來組...

shell語法小結

原帖 http blog.chinaunix.net u1 34739 showart 283263.html 1 set命令 當沒有引數的時候,列出系統中所有的自定義變數值 當有引數的時候,重置基本引數如 1 2等。如 set date 將date 命令的輸出當作輸入引數 2 let命令 執行算術...