Linux项目小练习:这样教刚入门Linux的学妹,想不会都难!
Posted 加辣椒了吗?
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux项目小练习:这样教刚入门Linux的学妹,想不会都难!相关的知识,希望对你有一定的参考价值。
前言
这样教刚入门Linux的学妹,想不会都难!
事先说明哈,这篇文章没有什么技术含量,但我相信对入门的Linux的兄弟萌肯定有会有所帮助嗒!我会尽我能力写的详细一点,把这道题当作练习挺不错的其实。当然,大佬的话可以滑走啦!
一、题目
编写一个显示菜单的 shell 程序,利用函数实现简单的菜单功能,n 的值由键盘 输入:
=================================
(1)计算 1 到 n 的奇数之和;
(2)计算 1 到 n 的阶乘;
(3)计算 1 到 n 的所有素数;
(4)退出程序。
=================================
Please enter function select and number: 1 1000
要求: 自行设计程序。关于素数计算功能应尽量选用高效算法实现。
题目就是这样啦!是不是看起来挺简单的。
但我想说的是:
怎么说呢,这种题就是看起来简单,但你真正做起来多多少少都会碰壁的。
至少对于我一个学linux不久的人来说是这样的。
所以!我想来把我的学习心得分享出来!
记录一下这一天!
希望对你有帮助!
代码如下:
二、使用步骤
1.思路
先分享一下我的思路把:
首先嘛,要一个功能选择判断,当输入小于等于0或者大于4的数字时,要求重新输入!
然后嘛对应的功能用对应函数体表示。功能1是函数f1,以此类推。很简单。
2.代码如下
看代码之前可以自己先练一下,这样收获更大。
echo "==========================================="
echo "** (1)计算1到n的奇数之和; **"
echo "** (2)计算1到n的阶乘; **"
echo "** (3)计算1到n的所有素数; **"
echo "** (4)退出程序。 **"
echo "==========================================="
echo "Please enter function select and number:"
echo "Please enter function number:"
read fun
echo "Please enter number"
read num
#如果不在1到4的范围内,则重新输入
#while后要加空格
while [ $fun -le 0 -o $fun -gt 4 ]
do
echo "The function select error! Please enter again!"
echo "Please enter function number:"
read fun
done
function f1(){
sum=0
for((i = 1;i<=$1;i++));
do
if [ $(($i % 2)) -ne 0 ];then
echo "$i是奇数"
sum=$(($i+$sum))
fi
done
echo "1到$1的奇数和为:$sum"
}
function f2(){
sum=1
for((i = 1;i<=$1;i++));
do
#echo "$i"
sum=$(($sum*$i))
done
echo "1到n的阶乘为:$sum"
}
function f3(){
flag=0
for((i = 2;i<=$1;i++));
do
for((j = 2;j<=$(($i/2));j++));
do
if [ $(($i % $j)) -ne 0 ];then
flag=0
else
flag=1
break
fi
done
if [ $flag -eq 0 ];then
echo "$i是素数"
fi
done
}
function f4(){
echo "退出程序啦!"
exit 0
}
case $fun in
'1')f1 $num;;
'2')f2 $num;;
'3')f3 $num;;
'4')f4;;
esac
3.运行截图:
当输入小于等于0或者大于4的数字时,要求重新输入!
对应代码:
while [ $fun -le 0 -o $fun -gt 4 ]
do
echo "The function select error! Please enter again!"
echo "Please enter function number:"
read fun
done
(1)计算1到n的奇数之和
当选择功能1时,对应执行代码:
function f1(){
sum=0
for((i = 1;i<=$1;i++));
do
if [ $(($i % 2)) -ne 0 ];then
echo "$i是奇数"
sum=$(($i+$sum))
fi
done
echo "1到$1的奇数和为:$sum"
}
(2)计算1到n的阶乘;
当选择功能2时,对应执行代码:
function f2(){
sum=1
for((i = 1;i<=$1;i++));
do
#echo "$i"
sum=$(($sum*$i))
done
echo "1到n的阶乘为:$sum"
}
(3)计算1到n的所有素数
当选择功能3时,对应执行代码:
function f3(){
flag=0
for((i = 2;i<=$1;i++));
do
for((j = 2;j<=$(($i/2));j++));
do
if [ $(($i % $j)) -ne 0 ];then
flag=0
else
flag=1
break
fi
done
if [ $flag -eq 0 ];then
echo "$i是素数"
fi
done
}
(4)退出程序
当选择功能4时,对应执行代码:
function f4(){
echo "退出程序啦!"
exit 0
}
总结
我把每一步选择的功能,对应的函数体和运行截图都写出来了。
然后,
来说说我踩过的坑吧!有点憨憨,但确实是我遇到的。
不是if () 而是 if []
不是if() 或while() 而是 if空格[空格 条件 空格]
数字判断要eq(等于),gt(大于),lt(小于),le(小于等于)等。
变量引用要加$
数字运算表达式要
(
(
)
)
位
置
变
量
(()) 位置变量
(())位置变量n是指函数第n个参数
退出是exit0不是exit()
就就这样啦,用这程序去教教学妹吧!说不定(你懂的)
反正我已经收到一堆好人卡了(害羞)
@作者:加辣椒了吗?
简介:憨批大学生一枚,喜欢在博客上记录自己的学习心得,也希望能够帮助到你们!
以上是关于Linux项目小练习:这样教刚入门Linux的学妹,想不会都难!的主要内容,如果未能解决你的问题,请参考以下文章
❤️大数据专业的学妹问我大数据怎么入门,我总结了亲身体验的学习路线推荐给她推荐收藏❤️
❤️大数据专业的学妹问我大数据怎么入门,我总结了亲身体验的学习路线推荐给她推荐收藏❤️
淦!我问刚上大学的学妹:最想进的大厂是什么?她给了我一个这样的名单....
疑惑,阿里四面后我竟然败给了人事面的小姐姐?直到清华的学妹给了我这份人事重点问题的回答指南,最后四面百度已拿Offer!