Shell基於case分支編寫指令碼

2021-10-08 13:08:37 字數 1210 閱讀 7208

本案例要求編寫test.sh指令碼,相關要求如下:

• 能使用redhat、fedora控制引數

• 控制引數通過位置變數$1傳入

• 當使用者輸入redhat引數,指令碼返回fedora

• 當使用者輸入fedora引數,指令碼返回redhat

• 當使用者輸入其他引數,則提示錯誤資訊

case分支屬於匹配執行的方式,它針對指定的變數預先設定乙個可能的取值,判斷該變數的實際取值是否與預設的某乙個值相匹配,如果匹配上了,就執行相應的一組操作,如果沒有任何值能夠匹配,就執行預先設定的預設操作。

case分支的語法結構如下所示:

1.	case  變數  in

2. 模式1)

3. 命令序列1 ;

;4. 模式2)

5. 命令序列2 ;;6.

....

7.*)8. 預設命令序列

9. esac

1.

[root@dyy ~]

# vim test.sh

2.#!/bin/bash

3. case $1 in

4. redhat)

5.echo

"fedora";;

6. fedora)

7.echo

"redhat";;

8.*)/

/預設輸出指令碼用法

9.echo

"用法: $0 "

10. esac

11.

12.[root@dyy ~]

# chmod +x test.sh

步驟二:驗證、測試指令碼

未提供引數,或提供的引數無法識別時,提示正確用法:

1.

[root@dyy ~]

# ./test.sh

用法: ./test.sh

確認指令碼可以響應redhat控制引數:

1.

[root@dyy ~]

# ./test.sh redhat

2. fedora

確認指令碼可以響應fedora控制引數:

1.

[root@dyy ~]

# ./test.sh fedora

2. redhat

LINUX 基於case分支編寫服務指令碼

問題 本案例要求編寫myprog服務指令碼,相關要求如下 能支援start stop restart等控制引數 控制引數通過位置變數 1傳入 能通過chkconfig命令來管理此服務 服務操作為sleep程序的開啟 關閉 重啟 方案case分支屬於匹配執行的方式,它針對指定的變數預先設定乙個可能的取...

shell 分支語句 case

case語句主要適用於 某個變數存在多種取值,需要對其中的每一種取值分別執行不同的命令序列。這種情況和多分支if語句非常相似。只不過if要判斷多個不同的條件而case語句只判斷乙個變數的不同取值。case 變數值 in 模式1 命令序列1 模式2 命令序列2 預設命令序列 esac在上述結構中,關鍵...

Shell 判斷 if 和分支 case

語法 if 條件判斷式 then do something fi或者 if 條件判斷式 then do something fi案例一,獲取當前使用者名稱,當然用whoami也可 bin bash test env grep user cut d f 2 if test root then echo...