bash脚本编程之三条件判断及算术运算
练习一:写一个脚本
判断当前系统上是否有用户的默认shell为bash;如果有,就显示有多少个这类用户;否则,就显示没有这类用户;
#!/bin/bash
#
grep '\ /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
USERS=` grep '\
echo "The shells of $USERS users is bash. "
else
echo "No such user."
fi
练习二:写一个脚本
给定一个文件,比如/etc/inittab
判断这个文件中是否有空白行;
如果有,则显示其空白行数;否则,显示没有空白行。
#!/bin/bash
#
grep '\ /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
USERS=` grep '\
echo "The shells of $USERS users is bash. "
else
echo "No such user."
fi
练习三:写一个脚本
给一个用户,判断其UID与GID是否一样
如果一样,就显示此用户为“good guy”,否则,就显示此用户为“bad guy”.
#!/bin/bash
#
USER=openstack
UIDS=`id -u $USER`
GIDS=`id -g $USER`
if [ $UIDS -eq $GIDS ]; then
echo "good guy"
else
echo "bad guy"
fi
练习四:写一个脚本
给定一个用户,获取其密码警告期限;
而后判断用户最近一次修改密码时间距是否已经小于警告期限;
提示:算术运算的方法$[$A-$B]:表示变量A的值减去变量B的值的结果;
如果小于,则显示”Warning“;否则,就显示”OK“.
shell 中如何进行算术运算:
A=3
B=6
1、let 算术运算表达式
let C=$A+$B
2、$[算术运算表达式]
C=$[$A+$B]
3、$((算术运算表达式))
c=$(($A+$B))
4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
c=`expr $A + $B`
#!/bin/bash
W=`grep "wolf" /etc/shadow | cut -d: -f6`
S=`date +%s`
T=`expr $S/86400`
L=`grep "wolf" /etc/shadow | cut -d: -f5`
N=`grep "wolf" /etc/shadow | cut -d: -f3`
SY=$[$L-$[$T-$N]]
if [ $SY -lt $W ]; then
echo "warning"
else
echo "OK"
fi
练习五:写一个脚本
判定命令历史中历史命令的总条目是否大于1000;如果大于,则显示”Some command will gone.“;否则显示”OK“;
#!/bin/bash
#
HI=`history | tail -1 | cut -d' ' -f2`
S=[ $HI -gt 100 ]
if [ $S -eq 0 ]; then
echo "Some command will gone."
else
echo "OK."
fi
阅读(860) | 评论(0) | 转发(0) |