首页 > 系统相关 >linux shell编程作业

linux shell编程作业

时间:2023-04-15 10:34:52浏览次数:35  
标签:shell grep expr 编程 echo score linux 磁盘 txt

使用for循环语句编写一段B-shell程序,完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表。

dirlst="a_sub b_sub"
for i in $dirlst
do
    cd $HOME/$i
    ls -l *.c
done

编写一段shell程序完成:根据从键盘输入的学生成绩,显示相应的成绩标准(分出不及格、及格、中、良和优秀等)。 如果输入的数据不是合法的怎么处理?

echo "请输入成绩"
read a
case $a in
        9[0-9]|100)echo "优秀";;
        8[0-9])echo "良";;
        7[0-9])echo "中";;
        6[0-9])echo "及格";;
        [0-5][0-9])echo "不及格";;
        *) echo "again input";;

esac

为便于系统管理员对磁盘分配的管理,请编写一段B-shell程序,当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为: ①小于50%时,提示“用户文件系统磁盘使用负荷量小”。 ②大于50%,小于90%时,提示“用户文件系统磁盘使用负荷量正常”。 ③大于等于90%时,提示“用户文件系统磁盘使用负荷量偏大。

#!/bin/bash
re=`du /home |grep /home$ |cut -f 1`
ld=`df / |grep /|tr -s [:space:]|cut -f 2 -d " "`
re=`echo "scale=0; ${re}*100/${ld}" |bc`
case $re in

        9[0-9])echo "用户文件系统磁盘使用负荷量偏大";;

        [5-8][0-9])echo "用户文件系统磁盘使用负荷量正常";;

        [0-4][0-9]|[0-9]) echo "用户文件系统磁盘使用负荷量小";;
esac

假设score.txt文件中保存了三个班级的学生的某门课程考试成绩,请编写一段shell程序计算每个班级的学生人数与平均分。 score.txt 班级 姓名 成绩 1 aa 88 1 bb 83 2 cc 70 2 dd 90 3 ee 91 3 ff 77

#!/bin/bash
stusum1=0
stusum2=0
stusum3=0
scoressum1=0
scoressum2=0
scoressum3=0
while read line
do
classnum=`echo $line|grep [0-9]|tr -s [:space:]|cut -d " " -f 1`
score=`echo $line|grep [0-9]|tr -s [:space:]|cut -d " " -f 3`
case $classnum in
	1) stusum1=`expr $stusum1 + 1`
		scoresum1=`expr $scoresum1 + $score`
		;;
	2) stusum2=`expr $stusum2 + 1`
                scoresum2=`expr $scoresum2 + $score`
                ;;
	3) stusum3=`expr $stusum3 + 1`
                scoresum3=`expr $scoresum3 + $score`
                ;;
esac
done < score.txt
echo "1班的人数:$stusum1   2班的人数:$stusum2   3班的人数:$stusum3"
echo -e "1班某科平均分:`expr $scoresum1 / $stusum1`\n2班某科平均分:`expr $scoresum2 / $stusum2`\n3班某科平均分:`expr $scoresum3 / $stusum3`\n"

如果数据文件的内容是3个班级5门不同课程的内容,程序应该怎么调整? score_1.txt 班级 姓名 语文 数学 英语 生物 化学
201 aa 88 77 72 73 74
201 bb 83 82 81 80 79
202 cc 70 69 68 67 66
202 dd 90 89 88 87 86
203 ee 91 90 89 88 87
203 ff 77 76 75 74 73

!/bin/bash
class="201 202 203"
for i in $class
do
	total=`grep -F $i score_1.txt|wc -l`
	echo "$i班:$total人"
	for j in 3 4 5 6 7
	do
		x=`sed -n '1p' score_1.txt|tr -s [:space:]|cut -d " " -f $j`
		objectscore=`grep -F $i score_1.txt|tr -s [:space:]|cut -d " " -f $j`
		average=`grep -F $i score_1.txt|awk -F" " '{sum+=$'$j'}END{print ":",sum/NR}'`
		echo "$i班$x平均分$average"
	done
done

标签:shell,grep,expr,编程,echo,score,linux,磁盘,txt
From: https://blog.51cto.com/u_16058292/6192232

相关文章

  • Linux环境下C语言连接数据库
    Linux环境下C语言操作Mysql数据库1.初始化句柄:mysql_init()MYSQL*mysql_init(MYSQL*mysql)分配或初始化与mysql_real_connect()相适应的MYSQL对象。如果mysql是NULL指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。如果mysql_init()分配了新的对象,......
  • bash shell 无法使用 perl 正则
      哈喽大家好,我是咸鱼。今天跟大家分享一个关于正则表达式的案例,希望能够对你有所帮助案例现象前几天有一个小伙伴在群里求助,说他这个shell脚本有问题,让大家帮忙看看   可以看到,这个脚本首先将目标文本文件的名字当作该脚本的第一个参数($1)传递进去,然后查看这个文本......
  • Shell的变量
    1)Shell变量的名字可以由数字、字母和下划线组成,并且只能以字母或者下划线开头,如u_1,a12。    Shell变量有环境变量和用户自定义变量两种类型。在使用变量时变量名前加“$”。Shell的环境变量用来保存系统状态或环境参数的变量。Shell的系统变量是一种特殊的环境变量,主要......
  • c++核心编程—内存分区模型
    一、概述c++在执行时,将内存大致分为4个区域1、代码区:存放函数体的二进制代码,由操作系统进行管理2、全局区:存放全局变量和静态变量以及常量3、栈区:由编译器自动分配释放,存放函数的参数,局部变量等4、堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区......
  • linux作业
    编写一个Shell脚本,根据键盘可以循环输入文件名,输入不存在文件或是目录名则提示后重新输入,按“q”或“Q”键退出。程序完成找出输入文件中所有含"YiBin"的行按格式“文件名,含YiBin的行”写入当前目录下文件notefile中。while:do read-p"input(q/Q退出):"file if[[$file......
  • #yyds干货盘点#Linux之find:查找目录下的文件
    【功能说明】find命令用于查找目录下的文件,同时也可以调用其他命令执行相应的操作。【语法格式】find[-H][-L][-P][-Ddebugopts][-olevel][pathname][expression]find[选项][路径][操作语句]1)注意find命令以及后面的选项和路径、操作语句,每个......
  • 【Windows / Linux】python 换 豆瓣源
    python换豆瓣源-直接运行Python代码即可 Windows版importospath=os.getenv('APPDATA')#获取环境变量data="""[global]timeout=6000index-url=http://pypi.douban.com/simple/trusted-host=pypi.douban.com"""#写入的数据fo......
  • WiFi协议曝安全漏洞:Linux、Android和iOS未能逃脱
    来自美国东北大学和鲁汶大学的学者披露了一组IEEE802.11Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Android和iOS的各种设备。来自美国东北大学和鲁汶大学的学者披露了一组IEEE802.11Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Androi......
  • WiFi协议曝安全漏洞:Linux、Android和iOS未能逃脱
    来自美国东北大学和鲁汶大学的学者披露了一组IEEE802.11Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Android和iOS的各种设备。来自美国东北大学和鲁汶大学的学者披露了一组IEEE802.11Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Androi......
  • WiFi协议曝安全漏洞:Linux、Android和iOS未能逃脱
    来自美国东北大学和鲁汶大学的学者披露了一组IEEE802.11Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Android和iOS的各种设备。来自美国东北大学和鲁汶大学的学者披露了一组IEEE802.11Wi-Fi协议标准的一个基础设计漏洞,影响到运行Linux、FreeBSD、Androi......