1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示;
#!/bin/bash
declare -i i=1
ping_172() {
if ping -W 1 -c 1 172.16.250.$1 &> /dev/null; then
echo -e "\033[32m 172.16.250.$1 was up \033[0m"
else
echo -e "\033[31m 172.15.250.$1 was down \033[0m"
fi
}
while [ $i -le 254 ];do
ping_172 $i
let i++
done
2、如何给网络接口配置多个地址,有哪些方式?
(1)ifconfig命令;立即生效但不能重启后无效
[root@localhost scripts]# ifconfig eth0:0 192.168.0.130/24
[root@localhost scripts]# ifconfig
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:13:C3:60
inet addr:192.168.0.130 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
(2)修改接口配置文件;修改后需重启网络配置或重启开机才能有效,而且会一直有效
[root@localhost scripts]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 -----加上下面的部分 DEVICE=eth0:0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.130 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=202.96.128.166 DNS2=202.96.134.133
(3)ip命令;立即生效但不能重启后无效
[root@localhost scripts]# ip addr add 192.168.0.130 dev eth0 label eth0:0
3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash
declare -i Kfile_sum=0
declare -i Sfile_sum=0
for i in $(ls /etc/rc.d/rc3.d | grep "^K");do
echo "$i stop"
let Kfile_sum++
done
cat << EOF
===============================
EOF
for x in $(ls /etc/rc.d/rc3.d | grep "^S");do
echo "$x start"
let Sfile_sum++
done
echo "Total the head of "S" file:$Sfile_sum"
echo "Total the head of "K" file:$Kfile_sum"
4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash
declare -i sum=0
for i in $@; do
if id $i &> /dev/null; then
a=$(id -u $i)
sum=$[$sum+$a]
else
echo "$i no such user!"
fi
echo "the id sum of these user:$sum"
done
5、写一个脚本 (1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash
declare -i dir_sum=0
declare -i filetype_sum=0
for i in $@; do
if ls $i &> /dev/null; then
name=$(ls $i)
for x in $name; do
file $i/$x
if [ -d $i/$x ];then
let dir_sum++
else
let filetype_sum++
fi
done
else
echo "$i no such directory"
fi
done
echo "Total directory: $dir_sum"
echo "Total filetype: $filetype_sum"
6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Please input a username"
exit 2
fi
if [ $(id -u $1) -gt 500 ] &> /dev/null; then
echo "$1 is a normal user"
fi
7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash
for i in $(seq 20 100);do
if ping -W 1 -c 1 172.16.250.$i &> /dev/null; then
echo "172.16.250.$i up"
fi
done
8、打印九九乘法表;
#!/bin/bash
#
for j in {1..9}; do
for i in $(seq 1 $j); do
echo -n -e "${i}X${j}=$[${i}*${j}]\t"
done
echo
done
原创文章,作者:N25_Pierce,如若转载,请注明出处:http://www.178linux.com/76747


评论列表(1条)
写的很好,需要注意的是在写脚本的时候可以多增加一些判断条件