shell小练习2
admin
2024-02-02 07:13:33

目录

1、a.拿出你CPU的类型:vender_id ​ ;b.拿出你CPU的具体型号: model name

2、输入成绩判断等级: 根据用户输入成绩,判断优良中差。ABCD 85-100 优秀--A 70-84 良好--B 60-69 合格--C 60分以下不合格--D 第一个输入的是有效的成绩: a.输入不能为空 b.输入的必须是一个整数 c.输入的整数必须>=0, <=100

3、获取根分区剩余空间百分比数

4、打印出下面语句中字符数不大于6的单词

5、九九乘法表(for和while两种方式)


1、a.拿出你CPU的类型:vender_id ​ ;b.拿出你CPU的具体型号: model name

[root@host3 day05]# str_data=`cat /proc/cpuinfo | grep vendor_id | uniq`
[root@host3 day05]# echo ${str_data#* }
GenuineIntel
[root@host3 day05]# echo ${str_data##* }
GenuineIntel
[root@host3 day05]# echo ${str_data##*" "}
GenuineIntel
[root@localhost day05]# result=`cat /proc/cpuinfo | grep "model name" | head -1`
[root@localhost day05]# echo ${result##*":"}
Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz

2、输入成绩判断等级: 根据用户输入成绩,判断优良中差。ABCD 85-100 优秀--A 70-84 良好--B 60-69 合格--C 60分以下不合格--D 第一个输入的是有效的成绩: a.输入不能为空 b.输入的必须是一个整数 c.输入的整数必须>=0, <=100

[root@localhost day05]# vim grade.sh
​
#!/bin/bash
read -p "请输入你的成绩:" grade
​
[ -z $grade ] && echo "你输入的成绩为空" && exit
expr $grade + 1 >& /dev/null
result=$?
[ $result -eq 2 ] &&  echo "输入必须是整数"  && exit
​
if [ $grade -lt 0 ] || [ $grade -gt 100 ]
thenecho "输入必须为0~100之间整数"exit
fi
​
[ $grade -le 100 -a $grade -ge 85 ] && echo "优秀--A"
[ $grade -le 84 -a $grade -ge 70 ] && echo "良好--B"
[ $grade -le 69 -a $grade -ge 60 ] && echo "合格--C"
[ $grade -lt 60 ] && echo "不合格--D"
​
if [ $grade -lt 60 ]
thenecho "不合格--D"
elif [ $grade -le 69 ]
thenecho "合格--C"
elif [ $grade -le 89 ]
thenecho "良好--B"
elseecho "优秀--A"
fi

3、获取根分区剩余空间百分比数

[root@localhost day06]# disk_usage=`df -h / | grep /`
[root@localhost day06]# echo ${disk_usage%'%'*}
/dev/mapper/centos-root 17G 1.3G 16G 8
[root@localhost day06]# disk_usage=`echo ${disk_usage%'%'*}`
[root@localhost day06]# echo ${disk_usage##* }
8
[root@localhost day06]# disk_usage=`echo ${disk_usage##* }`
[root@localhost day06]# echo $disk_usage
8

4、打印出下面语句中字符数不大于6的单词

rabbit is favorite to eat cabbage

[root@localhost day06]# vim letter.sh
#!/bin/bash
for i in rabbit is favorite to eat cabbage
dostr_lenth=`echo ${#i}`if [ $str_lenth -le 6 ]thenecho "$i"fi
done
​
[root@localhost day06]# sh letter.sh
rabbit
is
to
eat

5、九九乘法表(for和while两种方式)

方法一(for):

[root@localhost day06]# vim multi_table.sh
#!/bin/bash
for ((i=1;i<10;i++))
dofor ((j=1;j < $i+1 ;j++))doprintf "$i * $j = %2d  " `expr $i '*' $j`doneecho ""
done
​
[root@localhost day06]# sh multi_table.sh
1 * 1 =  1  
2 * 1 =  2  2 * 2 =  4  
3 * 1 =  3  3 * 2 =  6  3 * 3 =  9  
4 * 1 =  4  4 * 2 =  8  4 * 3 = 12  4 * 4 = 16  
5 * 1 =  5  5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25  
6 * 1 =  6  6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36  
7 * 1 =  7  7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49  
8 * 1 =  8  8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64  
9 * 1 =  9  9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81 

方法二(while):

[root@localhost day06]# vim multi_table1.sh
#!/bin/bash
i=1
while i<10
doj=1while j<10doprintf "$i * $j = %2d  " `expr $i '*' $j`let j++donelet i++
done
​
[root@localhost day06]# sh multi_table.sh
1 * 1 =  1  
2 * 1 =  2  2 * 2 =  4  
3 * 1 =  3  3 * 2 =  6  3 * 3 =  9  
4 * 1 =  4  4 * 2 =  8  4 * 3 = 12  4 * 4 = 16  
5 * 1 =  5  5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25  
6 * 1 =  6  6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36  
7 * 1 =  7  7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49  
8 * 1 =  8  8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64  
9 * 1 =  9  9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81

相关内容

热门资讯

香港电信招聘笔试题和面试题答案...   1.Based on your understanding of the following j...
吉利汽车笔试题和面试题答案目 ...   如果不想错过最新或2023(历届)吉利汽车最新推出的笔试题目,敬请阅读我们为大家整理出来的下文。...
神州数码笔试题和面试题答案 人...   最新或2023(历届)又迎来了新一轮的招聘高峰期,各大名企也纷纷展开了招聘序幕,下面是最新或20...
富士康招聘普工笔试题和面试题答...   A:语文、政史、常识、英语  一:填空   1、三人行,__________   2、海内存知己...