shell编程

Posted 一只放姑娘的羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程相关的知识,希望对你有一定的参考价值。

杨乾成 

一、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编程的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

Linux bash基础特性二

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用 Pygments 检测代码片段的编程语言

面向面试编程代码片段之GC