shell脚本编程练习

1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态

在线的主机使用绿色显示

不在线的主使用红色显示

#!/bin/bash

#

for i in {1..254};do

if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then

echo -e “\033[32m 192.168.1.$i \033[0m is up”

else

echo -e “\033[31m 192.168.1.$i \033[0m is down”

fi

done

2、如何给网络接口配置多个地址,有哪些方式?

  1. a) 使用ifconfig命令

例如 ifconfig eno16777736:0 192.168.0.100/24

  1. b) 使用Ip addr命令

例如 ip addr add 192.168.0.101/24 dev eno16777736

  1. c) 通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
  2. d) 使用nmtui命令

3、写一个脚本,完成以下功能

(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干

(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串

(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串

(4) 分别统计S开头和K开头的文件各有多少

#!/bin/bash

#

declare -i n=0

declare -i m=0

 

for i in $(ls /etc/rc.d/rc3.d); do

 

if [ $(echo $i | cut -c 1)  == “K” ]; then

echo “$i stop”

let n++

elif [ $(echo $i | cut -c 1) == “S” ]; then

echo “$i start”

let m++

fi

 

done

 

echo “K is $n S is $m.”

4、写一个脚本,完成以下功能

(1) 脚本能接受用户名作为参数

(2) 计算此些用户的ID之和

#!/bin/bash

#

declare -i sum=0

 

for i in $@; do

if ! id $i &> /dev/null; then

echo “$i is not user”

else

let sum=$sum+$(id -u $i)

fi

done

 

echo “uid sum = $sum”

5、写一个脚本

(1) 传递一些目录给此脚本

(2) 逐个显示每个目录的所有一级文件或子目录的内容类型

(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型

#!/bin/bash

#

declare -i m=0

declare -i n=0

 

for i in $@;do

if [ -d $i ];then

for x in $i/*;do

echo $x

let m++

if [ -d $x ];then

echo $x

let n++

fi

done

else

echo “$i is not a dir or not file”

fi

 

done

 

echo ” dir = $n   file = $m ”

6、写一个脚本

通过命令行传递一个参数给脚本,参数为用户名

如果用户的id号大于等于500,则显示此用户为普通用户

#!/bin/bash

#

uname=$1

if id $uname &> /dev/null ;then

if [ $(id -u $uname) -ge 500 ];then

echo “this is a normal user”

else

echo “Not an ordinary user”

fi

else

echo “not a user”

fi

7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来

#!/bin/bash

#

for i in {20..100};do

if ping -c 1 172.16.250.$i &> /dev/null;then

echo “172.16.250.$i is online”

fi

done

8、打印九九乘法表

#!/bin/bash

#

for i in ‘seq 1 9’;do

for j in ‘seq 1 $i’;do

echo -n -e “${j}X${i}=$[$j*$i]\t”

done

echo

done

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88406

(4)
N27_wjxN27_wjx
上一篇 2017-11-15 15:59
下一篇 2017-11-15 19:20

相关推荐

  • N21沉舟14周作业

    系统的INPUT和OUTPUT默认策略为DROP; iptables -P INPUT DROP iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响…

    Linux干货 2016-11-14
  • 第一周作业

    一、计算机的基本组成和功能   cpu包括运算器、控制器、寄存器、缓存       运算器:计算功能,对数据进行加工处理的的部件;       控制器:负责从存储器取出指令,控制cpu计算器之间的运行结果和状态;       寄存器:暂存指令和数据的地方,存储…

    Linux干货 2016-12-04
  • Linux磁盘管理

    一、磁盘管理总体分类  1)磁盘结构  2)分区类型  3)管理分区 4)管理文件系统  5)挂载设备 6)管理虚拟内存 ……………………………………………………………………………………………………………………… 重要分类模块详解 ………………………………………………………………………………………………………………………

    Linux干货 2016-08-29
  • sed 相关概念总结

    文件查看命令:cat, tac,rev cat [OPTION]… [FILE]… -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 [root@CentOS7 ~]# cat yyy [root@CentOS7 ~]# cat -A yyy $ tac: 把…

    Linux干货 2016-08-12
  • CollabNetSubversionEdge服务搭建

    准备目录并设置权限 [root@localhost ~]# mkdir /var/svn [root@localhost ~]# chown bohui:bohui /var/svn/ [root@localhost ~]# chmod 700 /v…

    Linux干货 2015-10-18
  • httpd 2.2(Apache Web服务器)

    apache (Web服务器) 简介: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。    Apache HTTP服务器是一个模块化的服…

    Linux干货 2016-03-30

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-02 09:20

    作业不错,继续加油。