1. 程式人生 > >shell練習(11)——運用case進行選單選擇

shell練習(11)——運用case進行選單選擇

1. 習題

設計一個指令碼,讓使用者輸入數字選擇要執行的命令。例如,輸出如下的提示,讓使用者輸出指令。

*cmd meau** 1-date 2-ls 3-who 4-pwd

然後指令碼將執行的結果輸出到螢幕

2. 分析

提示出入選擇的,用case 命令最合適了。case 語句的結構:

case  變數  in
value1 )
     process1
     ;;
value2 )
     process2
     ;;
value3)
     process3
     ;;
value4)
     process4
     ;;
*)
      process5;
    ;;
esac

3. 指令碼

#!/bin/bash

echo '*cmd meau** 1-date 2-ls 3-who 4-pwd'

read -p "please input a number for your cmd: " n

n2=`echo $n | sed 's/[0-9]//g'`

if [ -n "$n2" ];then
  echo "The input content is not a number."
  exit
fi

case $n in
1)
  date
  ;;
2)
  ls
  ;;
3)
  who
  ;;
4)
  pwd
  ;;
*)
  echo "please input a number 1-4"  
  ;;

esac

分析

首先,按照題目要求輸出提示行

然後,用read 讀入使用者輸入的內容

讀取內容之後,就要對內容進行判斷。如果不是數字則要退出,重新執行。

如果是數字,則需要新增超出1-4範圍的判斷,提示使用者超出了範圍