Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78905
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 434
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-23 09:31
个人简介

天行健,君子以自强不息;地势坤,君子以厚德载物

文章分类
文章存档

2018年(11)

2017年(30)

我的朋友

分类: LINUX

2017-04-13 23:59:31

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) |
给主人留下些什么吧!~~