• 已删除用户
吃猫的鱼℘
吃猫的鱼℘
发布于 2020-12-12 / 159 阅读
0

Linux操作系统编程 实验一 Shell编程

前言

学校的作业,如果看到了,不用怀疑,就是校友😀

实验目的

按要求编写3个脚本。

脚本1

编写一段bash脚本,满足如下要求:
(1)脚本接收2个整型参数,用来指定开始和结束
(2)计算并输出从开始到结束整数间所有偶数的和

提示:

  • 采用for或者while循环
  • 引入局部变量对循环进行计数
  • 引入局部变量计算中间结果。

脚本2

编写一段bash脚本,满足如下要求:
(1)脚本接收1个字符串参数,用于指定目标路径
(2)将目标路径中的所有目录名称输出到/tmp/dir.txt文件中
(3)将目标路径中的所有文件名称输出到/tmp/files.txt文件中

提示:

  • for filename in ls
  • ls –F
  • 正则表达式匹配:if [[ filename =~ (.*\/) ]]
  • 注意每行代码中的空格
  • 采用echo输出

脚本3

编写一段脚本bash脚本,使用awk计算score.txt中后三列的平均分,score.txt的内容如下

Marry 2143 78 84 77
Jack 2321 66 78 45
Tom 2122 48 77 71
Mike 2537 87 97 95
Bob 2415 40 57 62

实验过程

exp01_1.sh

#!/bin/bash

read -p "please input ibegin: " begin
read -p "olease input iend: " end

i=$begin
sum=0
while [ $i -le $end  ]
do
        if [ $(($i%2)) -eq 0 ]
        then
                let sum+=i
        fi
        let i++
done
echo "sum=$sum"

exp01_2.sh

#!/bin/bash

read -p "please input a string: " path

for filename in `ls -F $path`
do
        if [[ $filename =~ (.*\/$) ]]
        then
                echo $filename >> /tmp/files.txt
        else
                echo $filename >> /tmp/dir.txt
        fi
done

exp01_3.sh

#!/bin/bash
awk '{print (($3+$4+$5)/3);}' /home/test/linux_xxxx_demo/score.txt

实验结果

脚本1运行结果

脚本2运行结果

脚本3运行结果