Shell指令碼介紹與使用

偷懶的肥貓發表於2020-09-27

Shell介紹

Shell 和python都是弱語言
定義變數規則 : 變數名=值

shell定義變數的規則:

  1. 等號兩邊不能有空格

  2. 定義特殊的變數需要用單引號或者雙引號結合

  3. 定義linux命令需要用反單引號

區分單引號和雙引號的不同和相同點

Shell取值
使用:echo $變數名

Shell指令碼的規則

1: 指令碼名稱使用.sh結尾

2:第一行必須寫# !/bin/bash

3:輸入語句用read

4:輸出語句用:echo

5: 呼叫的時候

    /指令碼名.sh(許可權的問題)

    sh 指令碼名.sh

在這裡插入圖片描述

注意點:read可以傳遞多個資料 read –p”name and passwoed”name password

    超過的部分都填充在最後一個變數上

在這裡插入圖片描述

引數傳遞 :向.sh檔案中傳遞資料
格式: sh 指令碼名.sh 引數

$ 1 接收第一個引數~~$n
$n:檔名稱
$@:所有引數
$#:引數個數

在這裡插入圖片描述

在這裡插入圖片描述

比較運算子

比較運算子(數字)
-eq 比較是否相等
-ne 比較不相等
-gt 比較大於
-ge 比較大於等於
-lt 比較小於
-le 小於等於
字串判斷:== ,!=
邏輯運算子 -a與 -o或 !非
((i++)) ((i+=1))
s= ( ( (( ((s+ i ) ) s = i)) s= i))s=[ s + s+ s+i] ((s= s + s+ s+i))

在這裡插入圖片描述

If語句(分支結構)

if [ 條件 ]
then
語句
elif [ 條件 ]
then
語句

else
語句
fi

在這裡插入圖片描述

Case迴圈語句

case規則
case $變數名 in
“值”)
語句;;
“值”)
語句;;

esac

在這裡插入圖片描述

在這裡插入圖片描述

注意:
1:case這第一行以in結尾
2:值可以是字串也可以是數字, 如果數字範圍[0-9]
3:結束語句
4:esac結束標誌


For迴圈

for 變數 in 列表
do
語句
done

試想列表中的元素過多的時候,需要怎麼做?

seq mix step max 注意:mix 開始資料 step:間隔 max 結束資料,如果step為1,可以省略

注意1: 結束標誌done

在這裡插入圖片描述


While迴圈

while [ 條件 ]
do
語句
done

注意:結束done
While後有空格, 引數之間也
注意

在這裡插入圖片描述


函式

定義格式
函式名(){程式碼 }
呼叫格式
函式名

注意點:必須先定義一個函式,然後再呼叫它

在這裡插入圖片描述


引數傳遞

函式中的引數
使用$n來接收資料

練習:輸入任意兩個整數進行求和運算,並打
印結果

在這裡插入圖片描述

在這裡插入圖片描述


返回值

Shell中函式中預設存在返回值
檢視函式的返回值$?

在這裡插入圖片描述

注意點:
如果沒有程式碼錯誤預設返回值為0,
有程式碼錯誤返回1
檢視返回值內容:$?

在這裡插入圖片描述

相關文章