[root@localhost advanced_shell_script]# cat test16.sh #!/bin/bash # simple script menu function diskspace { #定義查看磁盤使用率函數 clear df -k } function whoseon { #定義查看當前用戶函數 clear who } function memusage { #定義查看內存使用率函數 clear cat /proc/meminfo } function menu { #定義展現菜單函數 clear echo echo -e "\t\t\tSys Admin Menu\n" echo -e "\t1. Display disk space" echo -e "\t2. Display logged on users" echo -e "\t3. Display memory usage" echo -e "\t0. Exit program\n\n" echo -en "\t\tEnter option: " read -n 1 option #定義用戶輸入,只能輸入一個數字 } while [ 1 ] #while 循環是整個腳本的入口,默認 while [1] 無限循環。 do menu #執行菜單函數,界面會輸出一個窗口,在 menu 函數中,最後一個read 爲等待輸入 case $option in #根據用戶的輸入,case 語句判斷輸入的數字,而且執行相應的函數 0) break ;; 1) diskspace ;; 2) whoseon ;; 3) memusage ;; *) #其餘錯誤輸入都提示錯誤 clear echo "Sorry, wrong selection";; esac echo -en "\n\n\t\t\tHit any key to continue" #提示信息 read -n 1 line #這個read 很是重要,表示在執行case 後等待輸出而後從新進行循環,若是沒有這個read 就不會進行等待,直接循環了。那麼咱們也就看不到須要獲取的信息 done clear [root@localhost advanced_shell_script]#