编写一个弹出式菜单的shell程序,利用函数实现简单的菜单功能,n的值由键盘输入:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写一个弹出式菜单的shell程序,利用函数实现简单的菜单功能,n的值由键盘输入:相关的知识,希望对你有一定的参考价值。

*****************************************
** (1)计算1到n的奇数之和; **
** (2)计算1到n的阶乘; **
** (3)计算1到n的所有质数; **
** (4)退出程序。 **
*****************************************

用select或者while都可以实现的,给你个框架,里面的小程序自己写:

#!/bin/bash
trap "" 2 3 15
MYDATE=`date "+%D %T"`
THIS_HOST=`hostname`
USER=`whoami`

#function:打开即时响应模式,读取用户点击的键值
read_char()

SAVESTTY=`stty -g`
stty raw
stty -echo
dd if=/dev/tty bs=1 count=1 2>/dev/null
stty -raw
stty echo
stty $SAVESTTY


#function:颜色模式
colour()

case $1 in
black_green)
echo \'^[[40;32m\'
;;
black_yellow)
echo \'^[[40;33m\'
;;
black_white)
echo \'^[[40;37m\'
;;
black_cyan)
echo \'^[[40;36m\'
;;
red_yellow)
echo \'^[[41;33m\'
;;
white_black)
echo \'^[[47;30m\'
;;
esac


#退出动作
my_exit()

colour black_white
exit 0

while :
do
tput clear
colour black_green
cat <<MAYDAY
--------------------------------------------------------------------------------
USER:$USER                  HOST:$THIS_HOST              DATE:$MYDATE
--------------------------------------------------------------------------------
                      1:计算1到n的奇数之和
                      2:计算1到n的阶乘
                      3:计算1到n的所有质数
                      Q:退出程序
--------------------------------------------------------------------------------
MAYDAY
colour black_cyan
echo "Your Choice[1,2,3,Q]>" 
read CHOICE
CHOICE=`read_char`
case $CHOICE in
1);;
2);;
3);;
Q|q)my_exit;;
*)echo "unknow choice!!";;
esac
echo  "Hit the ENTER key to return continue!"
read XXAA
done

有不懂得问我。

追问

直接写一个完整的吧

追答

小程序这么简单你自己可以写的?
还是你是新手刚学shell编程?

追问

新手啊

追答

1,1+3+5+...+(n-1) n能被2整除
1+3+5+...+(n-2)+n n不能被2整除

uy=`expr $n % 2`
sum=1
if [ "$uy" -eq "0" ]
then
n=`expr $n - 1`
fi
for((i=1;i<=$n;i++))
do
i=`expr $i + 2`
sum=`expr $sum + $i`
done

2,
for((i=0;i<$num;i++))
do
i=`expr $i + 1`
sum=`expr $sum \\* $i`
done

3,质数只能被1和自己整除
for i in `seq 1 $n`; do factor $i | awk \' if (NF == 2) print $2 \' ; done

参考技术A 广科的喔!哈哈哈

以上是关于编写一个弹出式菜单的shell程序,利用函数实现简单的菜单功能,n的值由键盘输入:的主要内容,如果未能解决你的问题,请参考以下文章

极简教程Linux Shell 脚本编程

高分替兄弟求VB编程题

编写一个shell程序,显示如下菜单并完成相应功能:1重启计算机2关机3显示

编写Shell程序,实现功能:计算N!,使用函数的方法实现.

shell脚本极简教程

linux用shell编写一个简单菜单