Linux实验报告四-shell编程

1、建立脚本文件1.sh,编写一段代码,实现以下功能:输出200以内能被7整除的所有数,并求其和。分别用while语句、for语句、until语句实现。

代码:
touch 1.sh
vim 1.sh
chnod a+x 1.sh
cat 1.sh

脚本代码:
方法一:使用while语句
#! /bin/bash
i=0
sum=0
while [ "$i" -le "200" ]
do
let "z=i%7"
if[ "$z"-eq 0 ]
then
echo "$i"
let "sum += i"
fi
let "i++"
done
echo "sum = $sum"

方法二:使用until语句
#! /bin/bash
i=0
sum=0
until [ "$i" -gt 200 ]
do
let "z=i%7"
if [ "$z" -eq 0 ]
then
echo "$i"
let "sum += i"
fi
let "i++"
done
echo "sum = $sum"

方法三:使用for语句
#! /bin/bash
sum=0
for(( i=0;i<=200;i++ ))
do
let "z=i%7"
if [ "$z" -eq 0 ]
then
echo "$i"
let "sum += i”
fi
done
echo "sum = $sum"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、从键盘任何敲10个数,求最大值。

代码:
vim 1.sh
cat 1.sh
./1.sh

脚本代码:
#! /bin/bash
echo "please enter 10 number:"
read -a num 
max=${num[0]}
for(( i=1;i<10;i++ ))
do
if [ "$max" -lt "${num[$i]}" ]
then
let "max=${num[$i]}"
fi
done
echo "max = $max"

在这里插入图片描述
3、
(1)建立脚本文件2.sh,编写一段代码,实现以下功能:已知一个变量取值分别为1,2,3,4,5五个数,要求输出1,2,3前三个数。

代码:
touch 2.sh
vim 2.sh
cat 2.sh
chmod a+x 2.sh
./2.sh

脚本代码:
#! /bin/bash
num=(1 2 3 4 5)
for(( i=0;i<3;i++ ))
do
echo ${nun[$i]}
done

在这里插入图片描述

(2)建立脚本文件3.sh,编写一段代码,实现以下功能:已知一个变量取值分别为1,2,3,4,5五个数,要求输出1,2,4,5四个数。

代码:
touch 3.sh
vim 3.sh
chmod a+x 3.sh
cat 3.sh
./3.sh

脚本代码:
#! /bin/bash
num=(1 2 3 4 5)
i=0
while [ ${nun[$i]} ]
do
if [ ${nun[$i]} -ne 3 ]
then
echo ${num[$i]}
fi
let "i++"
done

在这里插入图片描述

(3)建立脚本文件4.sh,编写一段代码,实现以下功能:已知一个变量取值分别为1,2,3,4,5五个数,要求输出所有数。

代码:
touch 4.sh
vim 4.sh
chmod a+x 4.sh
cat 4.sh
./4.sh

脚本代码:
#! /bin/bash
num=(1 2 3 4 5)
i=0
while [ ${num[$i]} ]
do
echo ${num[$i]}
let "i++"
done

在这里插入图片描述
4、建立脚本文件5.sh,编写一段代码,要求打印出以下效果。
*
***
*****
***
*

代码:
touch 5. sh
vim 5.sh
chmod a+x 5.sh
./5.sh
cat 5.sh

脚本代码:
#! /bin/bash
for((i=2,j=1;i>=0;i--,j+=2))
do
for((k=0;k<i;k++))
do
echo -n " "
done
for((n=0;n<j;n++))
do
echo -n "*"
done 
echo
done
for((i=1,j=3;i<=2;i++,j-=2))
do
for((k=0;k<i;k++))
do
echo -n " "
done
for((n=0;n<j;n++))
do
echo -n "*"
done
echo
done

在这里插入图片描述
5、建立脚本文件6.sh,编写一段代码,实现以下功能:将1至7中的任意一个数字转化成对应的英文星期几的前三个字母,如1转化为Mon,7转化为Sun等,输入其他的数字,则输出“输入有误”。然后对此程序进行循环测试,当输入0时,跳出循环。

代码:
touch 6. sh 
vim 6.sh
chmod a+x 6.sh
cat 6.sh
./6.sh

脚本代码:
#! /bin/bash
echo "please enter num"
read num
while [ $num -ne "0" ]
do
case $num in
1)echo "Mon";;
2)echo "Tue";;
3)echo "Wed";; 
4)echo "Thu";;
5)echo "Fri";;
6)echo "Sat";;
7)echo "Sun";;
[!1-7])echo "error";;
esac
read num 
done
echo "end"

在这里插入图片描述
6、建立脚本文件6.sh,编写一段代码,实现以下功能:根据用户输入的期末考试成绩,输出相应的成绩评定信息。如果成绩大于100或小于0,则输出“越界”;如果成绩大于等于60分小于100分,则输出“及格”;如果成绩小于60分,则输出“差”。 然后对此程序进行循环测试,当输入字母q时,跳出循环。

代码:
touch 6. sh 
vim 6.sh
chmod a+x 6.sh
cat 6.sh
./6.sh
echo "cross th脚本代码:
#! /bin/bash
echo "please enter your score:”
read score
while [ $score != "q" ] 
do
echo -n "level:"
if [[ "$score" -gt 100 || "$score" -lt 0 ]]
then
e border !"
elif [[ "$score" -ge 90 && "$score" -le 100 ]]
then
echo "excellence!"
elif [[ "$score" -ge 80 && "$score" -lt 90 ]]
then
echo "good marks!"
elif [[ "$score" -ge 70 && "$score" -lt 80 ]]
then
echo "medium level!"
elif [[ "$score" -ge 60 && "$score" -lt 70 ]]
then
echo "pass!"
else 
echo "fail!"
fi
echo "please enter your score:"
read score
done
echo "end"

在这里插入图片描述
在这里插入图片描述
看在我写了这么多的份上,麻烦给个三连好吧,谢谢了!!!
你不勇敢,没有人替你坚强,上天会辜负努力的人,但不会辜负一直努力的人!!!

  • 10
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值