#创建文本菜单
创建菜单布局
$
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: "
$
创建菜单函数
$
function diskspace { -- 一个空函数。只有一条echo输出语句
clear -- 函数从 clear 命令开始。这样你就能在一个干净的屏幕上执行该函数,不会受到原先菜单的干扰。
echo "This is where the diskspace commands will go"
}
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
}
menu -- 呈现菜单布局
$
添加菜单逻辑
menu
case $option in
0)
break ;;
1)
diskspace ;;
2)
whoseon ;;
3)
memusage ;;
*)
clear
echo "Sorry, wrong selection";;
esac
整合shell脚本菜单
$
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 ] -- 1相当于一个无限循环,通过break中断当前循环
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
$
使用select命令(比之前的严密,不会重复跳到菜单布局)
格式:
select variable in list -- list 参数是由空格分隔的文本选项列表
do
commands
done
$
function diskspace {
clear
df -k
}
function whoseon {
clear
who
}
function memusage {
clear
cat /proc/meminfo
}
PS3="Enter option: " -- 显示一个由 PS3 环境变量定义的特殊提示符
select option in "Display disk space" "Display logged on users" "Display memory usage" "Exit program"
-- select 语句中的所有内容必须作为一行出现
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
$
#制作窗口
需要dialog包,无法执行下载安装(略)
#使用图形
KDE环境
需要kdialog包
GNOME环境
zenity窗口部件
选 项 描 述
--calendar 显示一整月日历
--entry 显示文本输入对话窗口
--error 显示错误消息对话窗口
--file-selection 显示完整的路径名和文件名对话窗口
--info 显示信息对话窗口
--list 显示多选列表或单选列表对话窗口
--notification 显示通知图标
--progress 显示进度条对话窗口
--question 显示yes/no对话窗口
--scale 显示可调整大小的窗口
--text-info 显示含有文本的文本框
--warning 显示警告对话窗口
如:zenity --calendar -- 图形化显示日历