练习1,写脚本:

   传递3个指定的用户参数,运行脚本自动创建用户;例如:bash admin.sh user1,tom,jack

参考答案:# vim admin.sh

#!/bin/bash

#

echo $1

for I in `echo $1 | sed 's/,/ /g'`;do

       if id $I &> /dev/null;then

               echo "$I exists."

       else

               useradd $I

               echo $I | passwd --stdin $I &> /dev/null

               echo "$I add successfully."

       fi

done

练习2,写脚本:

   根据练习1的脚本要求扩展,例如:bash admin2.sh --add user1,tom,jack自动添加后面3个用户;例如:

bash admin2.sh --del user1,tom,jack自动删除后面3个用户;

参考答案:# vim admin2.sh

#!/bin/bash

#

if [ $1 == "--add" ];then

       for I in `echo $2 | sed 's/,/ /g'`;do

               if id $I &> /dev/null;then

                       echo "$I exists."

               else

                       useradd $I

                       echo $I | passwd --stdin $I &> /dev/null

                       echo "$I add successful."

               fi

       done

elif [ $1 == "--del" ];then

       for I in `echo $2 | sed 's/,/ /g'`;do

               if id $I &> /dev/null;then

                       userdel -r $I

                       echo "Delete $I finish."

               else

                       echo "$I not exist."

               fi

       done

else

       echo "Unknow."

fi

一、条件测试内容回顾

   1、整数测试

       -le, -lt, -ge, -gt, -eq, -ne

   2、字符测试

       ==, !=, >, <, -n, -z

   3、文件测试

       -e, -f, -d, -r, -w, -x

二、组合测试条件

   1、-a:与关系;

   2、-o:或关系;

   3、!:非关系;

       如:给定参数大于1小于3,如何表达:

           if [ $# -gt 1 -a $# -le 3]

       或:  if [ $# -gt 1] && [ $# -le 3 ]

练习3,写脚本:

   传递一个参数(单字符就行)给脚本,如参数为q、Q、quit或Quit,就退出脚本;

   否则,就显示不能识别的参数;

参考答案:# vim quit.sh

#!/bin/bash

#

if [ $1 == 'q' -o $1 == 'Q' -o $1 == 'quit' -o $1 == 'Quit' ];then

       echo "Quiting..."

       exit 0

else

       echo "Unknow Argument."

       exit 1

fi

三、运算符

   1、SUM=$[$SUM+$I]相当于let SUM+=$I;

       let I+=1相当于let I++

   2、取模

       -= let I-=相当于let I--

       *=

       /=

       %=

练习4,写脚本:

   计算100以内所有奇数和所有偶数的和,并分别显示;

参考答案:# vim sum.sh

#!/bin/bash

#

declare -i SUM1=0

declare -i SUM2=0

for I in `seq 1 100`;do

       if [ $[$I%2] == 0 ];then

               SUM1=$[$SUM1+$I]

       else

               SUM2=$[$SUM2+$I]

       fi

done

echo "The even sum is $SUM1."

echo "The obb sum is $SUM2."