Linux下Bash编程之算术运算符详解(三)

shell算术运算表示如下:

1、let 算术运算表达式

let C=$A+$B

2、$[算术运算表达式]

C=$[$A+$B]

3、$((算术运算表达式))

C=$(($A+$B))

4、expr 各操作数及运算符之间要有空格,且要使用命令引用

C=`expr $A + $B`

举例说明:

1.指定一个用户,判断用户密码剩余使用期限是否已经小于警告期限;

 如果小于警告期限,则显示“Password will expire --> Warning”;否则,就显示“OK”

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

vim shadowdate.sh 创建一个脚本文件并添加以下内容:

#!/bin/bash

USERNAME=willow   指定一个用户,并设置变量

RECE=`grep "\<$USERNAME\>" /etc/shadow | cut -d: -f3` 最近修改密码时间

LONG=`grep "\<$USERNAME\>" /etc/shadow | cut -d: -f5` 最长密码使用期限

EXPI=`grep "\<$USERNAME\>" /etc/shadow | cut -d: -f6`  警告期限

CURR=`date +%s` 从1970/01/01到今天,共多少秒

let TODAY=$CURR/86400  从1970/01/01到今天,共多少天


#let  USERDAYS=$TODAY-$RECE  注释:密码已使用多少天 其中之一表法方法

#USERDAYS=$[$TODAY-$RECE]    注释:密码已使用多少天 其中之二表法方法

USERDAYS=$(($TODAY-$RECE))    密码已使用多少天    其中之三表法方法


LEFT=`expr $LONG - $USERDAYS`  剩余使用期限


if [ $LEFT -lt $EXPI ]; then

  echo "Password will expire --> Warning"

else

  echo "Password is OK"

fi

wKiom1cPA2uDae_9AAJfGcvYkYg712.jpg

chmod a+x shadowdate.sh  授于执行权限

./shadowdate.sh       执行脚本