5、shell编程综合设计 编写一个显示菜单的shell程序,利用函数实现简单

5、shell编程综合设计编写一个显示菜单的shell程序,利用函数实现简单的菜单功能,n的值由键盘输入:================================... 5、shell编程综合设计

编写一个显示菜单的shell程序,利用函数实现简单的菜单功能,n的值由键盘输入:
===========================================
** (1)计算1到n的奇数之和; **
** (2)计算1到n的阶乘; **
** (3)计算1到n的所有质数; **
** (4)退出程序。 **
==========================================
Please enter function select and number: 1 1000
要求: 自行设计程序。
展开
 我来答
albumin
2016-06-14 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2393万
展开全部
while :
do
echo "===========================================
**    (1)计算1到n的奇数之和;       **
**    (2)计算1到n的阶乘;           **
**    (3)计算1到n的所有质数;       **
**    (4)退出程序。                   **
=========================================="
read -p "Please enter function select and number:" m n
[ $m -eq 4 ]&&exit
if echo $m|grep "^[1-4]$" >/dev/null&&echo $n|grep  "^[1-9][0-9]*$" >/dev/null
then
break
fi  
done
function sumodd()
{
    result=0
    i=1
    while [ $i -le  $1 ]
    do
    result=$(( result + i ))
    i=$(( i + 2 ))
    done
    printf "sum odd from 1 to $1:%d\n" $result
}

function fact()
{
     result=1
     i=1
     while [ $i -le $1 ]
     do
     result=$(( result * i))
     i=$((i + 1))
     done
     printf "factorial from 1 to $1:%d\n" $result
}

function prime()
{
   i=2 
   while [ $i -le $1 ]
   do
   j=2
   while [ $j -lt $i ]
   do
   if [ $(( i % j)) -eq 0 ]
   then
      break
   fi
   j=$((j + 1)) 
   done
   if [ $i -eq $j ] 
   then
   printf "%d\t" $i
   fi
   i=$((i + 1))
   done
   echo
}

case $m in
1)   sumodd $n;;
2)  fact $n;;
3)  prime $n;;
*) exit $?

esac
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式