练习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."