作业的处理

 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作为自己的子网掩码 不选的话可以输入自己需要的掩码并作判断是否存在