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
要求: 自行设计程序。 展开
编写一个显示菜单的shell程序,利用函数实现简单的菜单功能,n的值由键盘输入:
===========================================
** (1)计算1到n的奇数之和; **
** (2)计算1到n的阶乘; **
** (3)计算1到n的所有质数; **
** (4)退出程序。 **
==========================================
Please enter function select and number: 1 1000
要求: 自行设计程序。 展开
1个回答
展开全部
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询