码迷,mamicode.com
首页 > 系统相关 > 详细

shell编程(2)

时间:2019-12-04 01:35:37      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:radius   disco   size   http   jpg   while   编程   bash   inline   

杨乾成 201730500302

一、1到1000的平方和

这道题比较简单,就不加赘述了。代码如下:

1 #!/bin/bash
2 i=1
3 count=0 
4 while [ $i -le 1000 ]
5 do
6     let count+=i*i
7     let i++
8 done
9 echo "1到1000的平方和是$count"

 

运行结果如下:

技术图片

二、杀死进程

题目:创建一个SHELL程序,若当前shell的任意子进程的内存(或CUP)占用率超过50%,则将其杀死。

首先,使用下面的代码查看当前进程的ID:

ppid=`echo $$`

然后将当前内存或者CPU使用率大于50%的,输出到文件pid1

top -bn 1|grep "^*[1-9]"|awk {if($9>50||$10>50) print $1}>>pid1

然后查看当前shell进程的子进程id,输入到文件pid2

ps axo ppid,pid|awk {if($ppid==$1) print $2}>>pid2

然后比较两个文件中id相同的,就是要找的进程:

for id in `grep -wf pid1 pid2`
do
     kill $id
done

 

 

三、补充作业

题目:扫描局域网内的IP地址,分别将与当前主机连通的IP和非连通的IP放入文件connected.txt和disconnected.txt中。 这道题也比较简单,直接上代码:

#!/bin/bash
for ip in {1..254}
do
    ping -c 2 -i 0.3 -w 1 10.131.147.$ip &>/dev/null
    if [ $? -eq 0 ]
    then
        echo "10.131.147.$ip" >>connected.txt
    else
        echo "10.131.147.$ip" >>disconnected.txt
    fi
done

 

shell编程(2)

标签:radius   disco   size   http   jpg   while   编程   bash   inline   

原文地址:https://www.cnblogs.com/blogMorningStar/p/11980195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!