shell程式設計基礎

2021-07-17 03:24:52 字數 2921 閱讀 7465

1.熟悉shell

1.1 基本語法

# ! /bin/bash

shell必須以上面所示的開頭,以#開頭的語句表示注釋。

1.2 新增可執行許可權

chmod u+x 檔名

1.3 建立簡單的shell

# !/bin/bash

echo -n "hell .$user,today is "

date

echo "good lucky!"

2.變數

2.1 使用者定義的變數

規則:變數名=變數值

在定義變數時不能加$,再引用變數內容時要加$,給變數賦值時等號兩邊不能有空格,若變數本身包含空格應該加引號。

2.2 位置引數

位置引數是一種再呼叫shell程式的行命令中按照各自所在的位置決定的變數,是在程式名之後輸入的引數。位置引數之間用空格隔開,第乙個位置引數替換$1變數,以此類推。$0是是特殊的變數,它的內容是shell程式名。

2.3 預定義變數

$#:位置引數的數量。

$*:所有位置引數的內容。

$?:命令執行後返回的狀態。

$$:當前程序的程序號。

$!:後台執行的最後乙個程序。

$0:當前執行的程序名稱。

2.4 引數置換的變數

引數置換變數有4種,這些置換變數通常和某乙個位置引數相聯絡,根據指定的位置引數是否已經設定決定變數的取值。

1)變數=$

如果設定了引數,則用引數的之替換變數的值,否則用word置換。

2)變數=$

如果設定了引數,則用引數的值替換變數的值,否則用word的值替換變數,再用word替換引數的值。

3)變數=$

如果設定了引數,則用引數的值替換變數的值,否則就顯示word的內容並從shell中退出,如果省略了word則顯示標準資訊。

4)變數=$

如果設定了引數,則用引數的值替換變數的值,否則不進行置換。

3. 變數表示式

3.1 數值型別

eq:等於

ge:大於等於

le:小於等於

gt:大於

lt:小於

3.2 邏輯表示式

!: 取反

-o:或

-a:與

3.3 字元型別

=:等於

!=:不等於

-n:比較字串是否大於0

-z:比較字串是否小於0

4. 流程控制

4.1 條件判斷

1)if - then

格式:if 命令列1

then

命令列2

fi例:

# !/bin/bash

echo -n "請輸入乙個數字 "

read num

if [ $num -ge 60 ]

then

echo "你通過了考試!"

fi

2)if-then-else

格式:if 

命令列1

then

命令列2

else

命令列3

fi例:

# !/bin/bash

echo -n "請輸入乙個數字 "

read num

if [ $num -ge 60 ]

then

echo "你通過了考試!"

else

echo "你沒有通過考試!"

fi

3) case條件語句

格式:case string in

exp-1)

若干命令列1

exp-1)

若干命令列2

.......

其他命令列

esac例:

# !/bin/bash

echo "關機 1"

echo "重啟 2"

echo "時間 3"

echo -n "請選擇 "

read string

case $string in

1) shoutdown -h ;;

2) reboot ;;

3) date ;;

*) echo "輸入錯誤!"

esac

4.2 迴圈控制

1)for迴圈

格式:for 變數名 [in數值列表]

do若干命令列

done例:

# !/bin/bash

for num

doecho "$num"

done

2)while迴圈

while

若干命令列1

do若干命令列2

done

只要「若干命令1」的最後一條為真則一直執行「若干命令列2」。例:

# !/bin/bash

sum=0

num=0

while [ $num -le 5 ]

dosum=$[sum+num]

num=$[num+1]

done

echo $sum

3)until迴圈

until

若干命令列1

do若干命令列2

done

與while的區別是條件為假時執行。例:

# !/bin/bash

sum=0

num=0

until [ $num -ge 5 ]

dosum=$[sum+num]

num=$[num+1]

done

echo $sum

Shell 程式設計基礎

2 shell 程式設計基礎 shell 簡介認識後台程式 bash 程式設計熟悉 linux 系統下的編輯環境 熟悉linux 下的各種 shell 熟練進行 shell 程式設計熟悉 vi基本操作 熟悉emacs 的基本操作 比較不同 shell 的區別編寫乙個測試伺服器是否連通的 shell ...

shell 程式設計基礎

1.基礎正規表示式 aa 表示至少包含乙個a的行,a 匹配所有內容 匹配任意乙個字元,精準匹配 grep 提取文字中的字元 grep v root 取反不包括root的行 2.cut 命令 f第幾列 d分隔符 3.printf ni輸出n個整數 ns n個字元 m.nf m.nprintf s t ...

shell程式設計基礎

shell變數 定義變數 variablename value 使用變數 echo 唯讀變數 readonly variablename 刪除變數 unset variablename 變數型別 1 區域性變數 僅僅當前shell自己使用。2 環境變數 全部shell都能使用。3 shell變數 指...