實驗四 shell程式設計 shell控制語句

2021-08-15 03:07:59 字數 2308 閱讀 1061

實驗四

shell

程式設計:

shell

控制語句

實驗目的

進一步鞏固

shell

程式語言基本語法,加深對所學知識理解。

實驗內容

要求學生掌握以下內容

(1)

條件表示式

(2)

判斷和分支語句

(3)

迴圈語句

(4) 函式

實驗內容 1

條件表示式

$ test 10 -gt 5//

算數表示式

10>5

$ echo $?//

顯示上述表示式的執行結果

$ [ 10 -lt 5 ] //

算數表示式

10<5

$ echo $?

2. 條件和分支語句

使用編輯器

vi編輯下列

shell指令碼

(1)判斷輸入的使用者名稱是否為當前使用者名稱

#!/bin/bash

echo -n "enter your login name:"

read name

if [ "$name" ="$user" ];

then

echo "hello, $name. how areyou today ?"

else

echo "you are not $user, sowho are you ?" fi

將上述指令碼儲存至

test_uf.sh,

執行該指令碼

$ bash test_uf.shzhangs

(2)

判斷當前所處的時間

#!/bin/bash

hour=`date +%h`

case $hour in

0[1-9] | 1[01] )

echo "good morining !!" ;;

1[2-7] )

echo "good afternoon !!" ;;

* )

echo "good evening !! " ;;

esac

將上述指令碼儲存至檔案

test_case.sh

,執行該程式

$ bashtest_case.sh //

觀察執行結果

3. 迴圈語句

(1)計算最小值

#!/bin/bash

smallest=10000

for i in12 5 18 58 -3 80

doif test $i -lt$smallest

then

smallest=$i fi

done

echo " thesmallest number is: $smallest"

將上述指令碼儲存至

test_for.sh,

執行該指令碼

$ bashtest_for.sh//

觀察執行結果

(2)計算1

到100

之間整數的和

#!/bin/bash

i=1sum=0

while [ $i -le 100]

dosum=`expr $sum + $i`

i=`expr $i + 1`

done

echo the sum is$sum

將上述指令碼儲存至檔案

test_while.sh,

執行該指令碼

$ bashtest_while.sh

4. 函式

運用函式判斷兩個數的大小

#!/bin/bash

compare()

compare $1 $2

case $?in0)

echo "$1 = $2" ;;

1)echo "$1 > $2" ;;

2)echo "$1 < $2" ;;

esac

將上述指令碼儲存至檔案

test_fun.sh,

執行該指令碼

$ bash test_fun.sh10 36 //

觀察執行結果

5. 思考題

1. 函式內的

$1,$2

與函式外的

$1,$2

有何區別

函式內的$1和$2是指變數,而函式外的$1,$2則是新增到shell的各引數值。$1是第1引數、$2是第2引數 若在

正規表示式中,匹配出的第1、2、3個子表示式

2. 給出本地變數的作用域

作用域為整個bash程序

Linux 實驗四 Shell程式設計

熟練掌握重定向 管道 命令連線符和使用awk文字分析器提取文字內容的方法。掌握shell指令碼的編寫和執行方法。ubantu或centos 重定向操作符的使用 管道命令連線符 awk文字分析器 shell指令碼程式設計 輸入重定向 輸出重定向 錯誤重定向管道的功能為連線命令,使前乙個命令的輸出,作為...

shell程式設計 四

linux中bash的變數值是以字串的形式儲存的,所以如果想當作數字使用的話需要進行轉換 前面已經用到了一些,但沒有系統的總結 此外,shell中所有的算術運算都被當作整數運算,所以在有浮點數參與時要特別處理 計算算式的值,使用shell變數的值的時候不用 bin bash x 5 y 6 let ...

shell程式設計筆記(四)

case語句 語法 case 字串 in 值1 值2 操作 值3 值4 操作 值5 值6 操作 操作 esac case的作用就是當字串與某個值相同是就執行那個值後面的操作。如果同乙個操作對於多個值,則使用 將各個值分開。在case的每乙個操作的最後面都有兩個 分號是必須的。例 case user ...