1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash
trap ‘mytrap’ INT
mytrap() {
echo “quit”
exit 1
}
for i in {1..254};do
if ping -W 1 -c 1
172.16.150.$i&>/dev/null;then
echo -e
“\033[32m172.16.250.$i\033[0m”
else
echo -e
“\033[31m172.16.250.$i\033[0m”
fi
done
2、如何给网络接口配置多个地址,有哪些方式?
ifconfig NETWORK_NAME:# IPADDR/MASK
例如:ifconfig eno16777736:0 192.168.1.6/24
ip addr add NETWORK/MASK dev NETWORK_NAME label NETWORK_NAME:0
例如:ip addr add 192.168.1.7/24 dev eno16777736 label eno16777736:0
3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/sh
declare -a start
declare -a stop
for i in /etc/rc.d/rc3.d/S*;do
echo “${i} start”
start[${#start[*]}]=$i
done
for l in /etc/rc.d/rc3.d/K*;do
echo “${l} stop”
stop[${#stop[*]}]=$l
done
echo “^S have
${#start[*]}”
echo “^K have
${#stop[*]}”
or
#!/bin/sh
declare -a mysz
mysz() {
for i in /etc/rc.d/rc3.d/${1}*;do
echo “${i} $2”
done
echo “^${1} files have `ls /etc/rc.d/rc3.d/${1}*| wc -w`”
}
mysz S start
mysz K stop
4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/sh
b=0
for i in $*;do
if id -u $i
&>/dev/null;then
echo “$i ID is `id
-u $i`”
a=`id -u $i`
let b+=$a
else
echo “$i not found
!!”
exit 1
fi
done
echo “all users ID is $b”
5、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/sh
sumf=0
sumd=0
trap
‘echo -en “dir $sumd\n”;echo -en “file $sumf\n”;exit 1’ INT
f_type()
{local f
local
file_pathif [ -d
$1 ];thenfor f in `ls $1`;do
file_path=${1}/$f
[ -d $file_path ]&&let
sumd++&&f_type $file_path[ -f $file_path ]&&let sumf++
file $file_path
done
else
echo “not dir!!”
continue
fi
}
for i
in `seq 1 $#`;dof_type $1
done
echo
“dir $sumd”echo
“file $sunf”
6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/sh
aa() {
echo “no user!!”
exit 1
}
id $1&>/dev/null || aa
if [ `id -u $1` -ge 500 ];then
echo “$i is a Ordinary
user!!”
fi
7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/sh
mytrap() {
echo “quit”
exit 1
}
trap ‘mytrap’ INT
for i in {20..100};do
if ping -W 1 -c 1 172.16.250.$i
&>/dev/null;then
echo
“172.16.250.$i”
fi
done
8、打印九九乘法表;
#!/bin/sh
for ((i=1;i<=9;i++));do
for ((a=1;a<=$i;a++));do
echo -n -e
“${a}x${i}=$[${a}*${i}]\t”
done
echo
done
or
#!/bin/sh
a=1
while [ $a -le 9 ];do
for i in `seq 1 $a`;do
let b++
echo -en
“${i}x${a}=$[${i}*${a}]\t”
done
let a++
echo
done
~
原创文章,作者:N25_韩奇洋,如若转载,请注明出处:http://www.178linux.com/70092
评论列表(1条)
脚本功能都已经实现了,但是没有经过着色的代码看起来着实很痛苦,内容固然重要,但也要同时注意可读性。