shell指令碼選單的核心是case命令,case命令根據使用者在選單中選擇的字母執行特定的命令。
(1)建立選單布局
[root@ceph01 menu]# cat menu.sh
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 menu\n\n"
echo -en "\t\tenter option: "
執行指令碼:
(2)建立選單函式
function menu
(3)新增選單邏輯
menu
case $option in
0) break ;;
1) diskspace ;;
2) whoseon ;;
*) clear
echo "sorry, wrong selection";;
esac
(4)組合
[root@ceph01 menu]# cat menu.sh
#!/bin/bash
# ****** script menu
function diskspace
function whoseon
function memusage
function menu
while [ 1 ]
do menu
case $option in
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
done
clear
(5)使用select命令select命令允許從單命令列建立選單,然後獲取輸入的答案並自動處理它。select命令的格式是:
select variable in list
do commands
done
[root@ceph01 menu]# cat menu-select.sh
#!/bin/bash
# using select in the menu
function diskspace
function whoseon
function memusage
ps3="enter option: "
select option in "display disk space" "display logged on users" "display memory usage" "exit program"
do case $option in
"exit program")
break ;;
"display disk space")
diskspace ;;
"display logged on users")
whoseon ;;
"display memory usage")
memusage ;;
*) clear
echo "sorry, wrong selection";;
esac
done
clear
[root@ceph01 menu]# ./menu-select.sh
1) display disk space 3) display memory usage
2) display logged on users 4) exit program
enter option:
(1)ansi轉義碼ansi轉義碼以控制序列指示器開頭,後面跟表示要在顯示器上執行的操作的資料。
sge轉義碼的格式為:
csin[;k]m
-m代表sgr轉義碼
n和k引數定義所使用的顯示控制
顯示控制引數有3類:
效果控制**
前景色控制**
背景色控制**
將顯示設定為使用傾斜的字型:
csi3m
將顯示設定為使用傾斜和閃亮:
csi3;5m
指定白色前景:
csi37m
(2)顯示ansi轉義碼ctrl + v ; esc鍵
使用ansi轉義控制碼進行測試:
[root@ceph01 menu]# echo ^[[41mthis is a test
this is a test
[root@ceph01 menu]#
[root@ceph01 menu]# echo ^[[41mthis is a test^[[0m
this is a test
[root@ceph01 menu]#
(3)在指令碼中使用顏色
[root@ceph01 menu]# cat menu-color.sh
#!/bin/bash
# menu using colors
function diskspace
function whoseon
function memusage
function menu
echo "^[[44;33m"
while [ 1 ]
do menu
case $option in
0) break ;;
1) diskspace ;;
2) whoseon ;;
3) memusage ;;
*) clear
echo -e "^[[5m\t\t\tsorry, wrong selection^[[0m^[[44;33m";;
esac
echo -en "\n\n\t\t\thit any key to comtinue"
read -n 1 line
done
echo "^[[0m"
clear
(1)dialog軟體包dialog命令使用命令列引數確定生成的windows小部件的型別,小部件(widget)是一類windows元素的dialog軟體包術語。
要在命令列上具體指定乙個特定的小部件,需要使用雙破折號格式:
dialog --widget parameters
msgbox小部件
(未完待續!!!!!!)
Makefile中新增shell指令碼
makefile中可以加入shell指令碼語言,但是編寫形式不一樣,makefile中都是以行為單位的,所以必須將makefile中的shell指令碼通過 連線成一行。例如 if d hisi home src sdk modify hidrv v0a1 source osdrv kernel li...
shell指令碼 在檔案中新增標頭檔案
塊 bash bin filename inbash.sh 檢視檔案是否含有 count grep 1 wc l if 0 then 定界符 eof後的檔案前面不能有空格 cat 1 eof bin bash author date date y m d description eoffi除錯指令碼...
Shell 指令碼程式設計
1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...