1.需求分析
用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息、用户的信息等常用的功能。本例针对这一需要,使用shell编程实现了基本的系统管理功能。通过本程序,可以按照要求实现查看进程信息、查看当前登录系统的用户等功能。程序主界面的颜色可以修改,也可以显示帮助信息。
2.系统设计
实例流程图如下:
3.程序代码
根据上述流程图,程序可以分为几个模块:界面修改模块,主界面模块,查看进程信息模块,查看用户信息模块和帮助模块,各模块封装成函数予以实现。
# 界面修改模块
color()#定义函数color,根据输入颜色信息修改界面颜色
{
case $1 in#调用case判断函数参数1的值
black_green)#黑底绿字
echo -e "\033[40;32m"
#调用echo,通过向显示器输出控制字符达到特殊效果
;;#case局部结束符
black_yellow)#黑底黄字
echo -e "\033[40;33m"
;;
white_blcak)#白底黑字
echo -e "\033[40;37m"
;;
black_white)#黑底白字
echo -e "\033[40;36m"
;;
black_blue)#黑底蓝字
echo -e "\033[40;34m"
;;
esac#case结束
}
# 主界面模块
echo -e"\033[2J"#清屏
trap ""1 2 3#设置信号处理
mday=`date+%d/%m/%y`#日期信息
mhost=`hostname`#机器名信息
mwho=`whoami`#当前用户信心
while :#循环显示主菜单
do
cat <<mmenu
------------------------------------------------------------
$mwho$mhost$mday
------------------------------------------------------------
1: 改变字体颜色
2: 查看进程信息
3: 查看用户信息
h: 帮助
q: 退出
------------------------------------------------------------
mmenu
echo -e -n"\t 输入您的选择[1,2,3,h,q]: "
read Cho
case $Cho in
1)
while :
do
cat <<kcol
------------------------------------------------------------
$mwho$mhost$mday
------------------------------------------------------------
1:黑绿2:黑黄3:白黑4:黑白5:黑蓝0:返回
------------------------------------------------------------
kcol
echo -e -n "\t请输入选择的颜色[1,2,3,4,5]: "
read choice
if [ "$choice" ="1" ]
then
color black_green
elif [ "$choice" ="2" ]
then
color black_yellow
elif [ "$choice" = “3” ]
then
color white_black
elif [ "$choice" ="4" ]
then
color black_white
elif [ "$choice" ="5" ]
then
color blace_blue
elif [ "$choice" ="0" ]
then
break
else
echo -e "\033[2J"
continue
fi
clear
done
;;
# 查看进程信息模块
2)
ps aux|sort-rn|head -10
;;
# 查看用户信息模块
3)
who
;;
# 帮助模块
H|h)
cat <<mmenu
-----------------------------------------------------------------
选择改变颜色可以修改当前界面的字体颜色
选择查看进程信息可以获取当前占用资源最高的前10个进程
选择查看用户可以获取当前登录系统的用户信息
----------------------------------------------------------------
mmenu
;;
Q|q)
exit 0
;;
*)
echo -e"\033[2J";
continue;
;;
esac
echo -e -n"\t 按任意键继续"
read J
clear
done
说明:
1.脚本程序已经测试,完全通过,只是里面的颜色部分有点小问题,大家可以查一查,在shell中颜色的数值码是多少,由于五一回家电脑没有网,所以希望大家完善这个代码。
2.在编写程序时,不要在里面刻意的加一些空格或者缩进,否则会报错。由于shell不比C语言那么自由,里面的空格,缩进都有讲究,希望大家认真仔细。
3.代码来源于资料,仅供参考。
转载于:https://blog.51cto.com/fancong/1290214