shell中的算术运算方式有很多种,如,A=1,B=2,那么要怎么计算A+B的值了? 不能简单的$A+$B,如果这样运算的话,得出的结果为1+2,显然不是我们想要的结果,要的出结果为3,我们有一下几中方法:
1.let C=$A+$B,echo $C 输出的值就为3
2.C=$(( $A+$B ))
3.C=$[$A+$B]
4.C=`expr $A + $B` (需要注意+号与两边的数值之间要有空格隔开,否则C的结果为1+2)
5.。。。
练习:写一个脚本
给定一个用户,获取其密码警告期限;而后判断用户密码剩余使用期限是否已经小于警告期限;( 提示:计算方法,最长使用期限减去已经使用的天数即为剩余使用期限;然后剩余天数和警告天数比较)如果小于,则显示“Warning”;否则,就显示“OK”。
分析:
#!/bin/bash
user="student"
mast_time=`grep "^$user\>" /etc/shadow | cut -d: -f5` #最长时间
now_time=$((`date +%s`/86400)) #现在时间距1970-1-1有多少天
modify_time=`grep "^$user\>" /etc/shadow | cut -d: -f3` #最近一次修改密码时间距1970-1-1过了多少天
use_time=$(($now_time-$modify_time)) #已经使用了的时间
remain_time=$(($mast_time-$use_time)) #剩余时间
warning_time=`grep "^$user\>" /etc/shadow | cut -d: -f6` #警告天数
#打印出这些时间
echo "mast $mast_time"
echo "now $now_time"
echo "modify $modify_time"
echo "use $use_time"
echo "remain $remain_time"
echo "warning $warning_time"
if [[ $remain_time -le $warning_time ]];then
echo "warning"
else
echo "ok"
fi
原文地址:http://blog.51cto.com/13803030/2145122
时间: 2024-10-10 09:42:00