作业的处理
1 用户录信息 显示用户登录次数 登录四次就提醒 不到四次就睡眠5s
#!/bin/bash
14 cut -d: -f1 /etc/passwd | grep "^$1" &>/dev/null || exit 3
15 let conut=`who | grep "^$1" | wc -l`
16 if [ $conut -le 4 ] ;then
17 sleep 3
18 else
19 echo "$1 login 4 times"
20 fi
另一种方法:
5 cut -d: -f1 /etc/passwd | grep "^$1" &>/dev/null || exit3
6 let count=`who | grep "^$1" | wc -l `
7 until [ $count -ge 4 ] ; do
8 sleep 2
9 let count=`who| grep "^$1" | wc -l`
10 done
11 echo "$1 have been login 4 times"
2 用户登录显示所使用的shell类型
3 三个数的大小比较
4 100的偶数的和
5 判断文件是否存在并显示文件行数
6 ping C类网络
#!/bin/bash
ping() {
20 read -p "ip:" mip
21 PINGNET=`echo $mip | sed 's/\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/g'`
22
23 let I=1
24 while [ $I -le 20 ]; do
25 ping -c1 -W1 $PINGNET.$I &> /dev/null
26 [ $? -eq 0 ] && echo -e "\033[32m$PINGNET.$I online.\033[0m" || echo -e "\033[ 31m$PINGNET.$I offline.\033[0m"
27 let I++
28 done
29 }
31 ping
显示结果加上颜色可以echo -e "\033[31(代表颜色值)PINGNET.$I on line.\033[0m"
7 eth0网卡的编辑和替换
1 #!/bin/bash
2 #auther:jing
3 #date: 11:56:26 2011-01-13
4 #dese:
5 read -p "iput ip:" myip
6 read -p "iput mask:" mask
7 file=/root/jing/ifcfg-eth0
8 if grep -E "^BOOTPROTO=(dhcp)|(bootp)$" $file &>/dev/null ;then
9 sed -i " s/^BOOTPROTO=.*/BOOTPROTO=staic/g" $file
10 grep "^IPADDR=.*" $file &>/dev/null && sed -i "s/IPADDR=.*/IPADDR=$myip/g" $file || sed -i "/BOOTPROTO=.*/a\IPADDR=$myip" $file
11 grep "^NETMASK=.*" $file &>/dev/null && sed -i "s/NETMASK=.*/NETMASK=$mask/g" $file || sed -i "/IPADDR=.*/a\NETMASK=$mask" $file
12 fi
要求用户输入ip和子网掩码 判段/root/ifcfg-eth0 的bootproto值 并将其值替换成static 然后查找文件中是否有IPADDR和NETMASK字段 如果有就将其改为自己设的$MY、$MYMASK 没有的话就添加自己的设置的$MY、$MYMASK
扩展
1 #!/bin/bash
2 #auther:jing
3 #date: 11:56:26 2011-01-13
4 #dese:
5 read -p "iput ip:" myip
6 [ -z $myip ] && myip='192.168.0.50'
7 read -p "iput mask:" mask
8 [ -z $mask ] && mask='255.255.255.0'
9 file=/root/jing/ifcfg-eth0
10 if grep -E "^BOOTPROTO=(dhcp)|(bootp)$" $file &>/dev/null ;then
11 sed -i " s/^BOOTPROTO=.*/BOOTPROTO=staic/g" $file
12 grep "^IPADDR=.*" $file &>/dev/null && sed -i "s/IPADDR=.*/IPADDR=$myip/g" $file || sed -i "/BOOTPROTO=.*/a\IPADDR=$myip" $file
13 grep "^NETMASK=.*" $file &>/dev/null && sed -i "s/NETMASK=.*/NETMASK=$mask/g" $file || sed -i "/IPADDR=.*/a\NETMASK=$mask" $file
14 fi
在作业7的基础 上扩展判断用户输入的ip和子网掩码是否合法 并在用户不输入的情况下系统给出默认的ip和掩码
扩展二
4 #!/bin/bash
5 file=/root/jing/ifcfg-eth0
6 read -p "iput ip:" myip
7 [ -z $myip ] && myip='192.168.0.50'
8 echo "choice a netmask: [1 2 3]"
9 cat <<EOF
10 1 255.255.255.0
11 2 255.255.0.0
12 3 255.0.0.0
13 EOF
14 read choice
15 case $choice in
16 1) mask= 255.255.255.0 ;;
17 2) mask=255.255.0.0 ;;
18 3) mask=255.0.0.0 ;;
19 *)
20 [ -z $choice ] && read -p "input your mask:" mask || mask='255.255.255.0'
21 ;;
22 esac
23 if grep -E "^BOOTPROTO=(dhcp)|(bootp)$" $file &>/dev/null ;then
24 sed -i " s/^BOOTPROTO=.*/BOOTPROTO=static/g" $file
25 grep "^IPADDR=.*" $file &>/dev/null && sed -i "s/IPADDR=.*/IPADDR=$myip/g" $file || sed -i "/BOOTPROTO=.*/a\IPADDR=$myip" $file
26 grep "^NETMASK=.*" $file &>/dev/null && sed -i "s/NETMASK=.*/NETMASK=$mask/g" $file || sed -i "/IPADDR=.*/a\NETMASK=$mask" $file
27 fi
在扩展基础上添加了用户不需要手动输入子网掩码的麻烦可以选择1 、2或3作为自己的子网掩码 不选的话可以输入自己需要的掩码并作判断是否存在
转载于:https://blog.51cto.com/jingmu/463709