1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash ipnet=172.20.51. trap 'trap_action' INT trap_action() { break return 1 } for ((i=1;i<=50;i++));do ping -c 1 -W 1 ${ipnet}${i} &> /dev/null && echo -en "\033[32m ${ipnet}${i} \033[0m\n" || echo -en "\033[31m ${ipnet}${i} \033[0m\n" done
2、如何给网络接口配置多个地址,有哪些方式?
]# ip addr add 172.20.219.51/24 label eth0:2 dev eth0 ]# ifconfig eth0:1 172.20.219.51 netmask 255.255.255.0 up
3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash s=0 k=0 for i in `ls /etc/rc.d/rc3.d/*`;do case $i in /etc/rc.d/rc3.d/S*) echo ${i##*/}stop && let s++;; /etc/rc.d/rc3.d/K*) echo ${i##*/}start && let k++;; esac done echo -en "以K开头的文件个数为:${k}\n" echo -en "以S开头的文件个数为:${s}\n"
4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash sum=0 declare -a userid for i in $(seq 1 $#);do userid[$i]=$(id -u $1 2>/dev/null) if [ -z ${userid[$i]} ];then echo -en "$1不存在\n" shift else let sum+=${userid[$i]} shift fi done echo -en "用户id之和为:${sum}\n"
5、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bashsumdir=0sumfile=0trap 'trap_action' INTtrap_action() {echo -en "总共包含的目录数:${sumdir}\n"echo -en "总共显示的文件数:${sumfile}\n"exit 2}f_type() {local jlocal j_pathif [ ! -d $1 ];then echo -en "${1}该参数不是目录!\n" shift continueelse for j in $(ls $1);do j_path=${1}/${j} [ -d $j_path ] && let sumdir++ && f_type $j_path [ -f $j_path ] && let sumfile++ file $j_path donefi}for i in $(seq 1 $#);do f_type $1 shiftdoneecho -en "总共包含的目录数:${sumdir}\n"echo -en "总共显示的文件数:${sumfile}\n"
6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash for i in $(seq 1 $#);do userid[$i]=$(id -u $1 2>/dev/null) if [ -z ${userid[$i]} ];then echo -en "${1}该用户不存在!\n" && shift && continue elif [ ${userid[$i]} -lt 500 ];then echo -en "${1}该用户为系统用户\n" && shift && continue else echo -en "${1}该用户为普通用户\n" && shift fi done
7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash netip=172.16.250. trap 'trap_action' INT trap_action () { break return 2 } for ((i=20;i<=100;i++));do ping -c 1 -W 1 ${netip}$i &> /dev/null && echo ${netip}$i done
8、打印九九乘法表;
#!/bin/bash for i in {1..9};do for j in $(seq 1 $i);do echo -en "${j}x${i}=$[$j*$i]\t" done echo done
原创文章,作者:N25_Nva,如若转载,请注明出处:http://www.178linux.com/69781
评论列表(1条)
测试了部分脚本代码,功能都没有问题,但是还是希望今后可以把执行结果在文章中直观展示出来,继续 加油。