首页 > 代码库 > linux命令:if语句练习

linux命令:if语句练习

1、练习:写一个脚本

     判断当前系统上是否有用户的默认shell为bash;

     如果有,就显示有多少个这类用户,且显示其中一个用户名称;

     否则,就显示没有这类用户;

   

   #!/bin/bash

   # program

   #  练习使用if语句判断默认shell

   # history  level1 2016-10-19-14:00

    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

     export PATH

     grep "\<bash$" /etc/passwd &> /dev/null

     RESULT=`echo $?`

     if [ $RESULT -eq 0 ] ; then

        BASHIN=`grep "\<bash$" /etc/passwd | head -1 | cut -d: -f1`

        echo "The number of bash users are `grep "\<bash$" /etc/passwd | wc -l`"

        echo "the one of is $BASHIN."

      else

        echo "no such user"

     fi

提示:“引用”一个命令的执行结果,要使用命令引用;比如: RESAULTS=`wc -l /etc/passwd | cut -d: -f1`;

      使用一个命令的执行状态结果,要直接执行此命令,一定不能引用;比如: if id user1一句中的id命令就一定不能加引号;

         如果想把一个命令的执行结果赋值给某变量,要使用命令引用,比如USERID=`id -u user1`;

      如果想把一个命令的执行状态结果保存下来,并作为命令执行成功与否的判断条件,则需要先执行此命令,而后引用其状态结果,如

              id -u user1

              RETVAL=$?

              此句绝对不可以写为RETVAL=`id -uuser1`;


2、练习:写一个脚本

     给定一个文件,比如/etc/inittab

     判断这个文件中是否有空白行;

     如果有,则显示其空白行数;否则,显示没有空白行。

   #!/bin/bash

   # program

   #  练习使用if语句判断默认shell

   # history  level1 2016-10-19-14:20

   PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

    export PATH

    grep "^$" /etc/inittab

    RESULT=`echo $?`

    if [ $RESULT -eq 0 ]; then

       echo "The lines is `grep "^$" /etc/inittab | wc -l`"

     else

       echo "The lines is not exist."

     fi

3、练习:写一个脚本

     给定一个用户,判断其UID与GID是否一样

     如果一样,就显示此用户为“good guy”;否则,就显示此用户为“bad guy”。

   #!/bin/bash

   # program

   # 判断用户的GID和UID是否一致

   # history 2016-10-19-15:26

   PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

  export PATH

     NAME=user5

     USERUID=`id -u $NAME` (USERUID=`grep "\<$NAME\>" /etc/passwd | cut -d: -f3`)

     GROUPGID=`id -g $NAME` (USERUID=`grep "\<$NAME\>" /etc/passwd | cut -d: -f4`)

   if [ $USERUID -eq $USERGID ]; then

       echo "The $NAME is good guy."

    else

       echo "The $NAME is bad guy."

   fi

4、练习:写一个脚本

     给定一个用户,获取其密码警告期限;

     而后判断用户密码使用期限是否已经小于警告期限;

     提示:计算方法,最长使用期限减去已经使用的天数即为剩余使用期限;

     如果小于,则显示“Warning”;否则,就显示“OK”。 

   #!/bin/bash

   # program

   # 判断用户密码使用期限是否到期

   # history time 2016-10-19-16:18

   PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

   export PATH

   USERNAME=donggen

  CHADAY=`grep "\<$USERNAME\>" /etc/shadow | cut -d: -f3`

  LONGDAY=`grep "\<$USERNAME\>" /etc/shadow | cut -d: -f5`

  WARNING=`grep "\<$USERNAME\>" /etc/shadow | cut -d: -f6` 

  let TODAYTIMES=`date +%s`/86400 

  let USEDTIMES=$TODAYTIMES-$CHADAY

  let SURPLUSTIMES=$LONGDAY-$USEDTIMES

 if [ $SURPLUSTIMES -lt $WARNING ]; then

   echo "The surplus times is Warning!"

 else

   echo "The surplus times is OK!"

 fi

   

   


本文出自 “学linux历程” 博客,请务必保留此出处http://woyaoxuelinux.blog.51cto.com/5663865/1863667

linux命令:if语句练习