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

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

./shadowdate.sh       执行脚本

时间: 2024-08-28 00:41:31

Linux下Bash编程之算术运算符详解(三)的相关文章

linux下Bash编程之数组Array详解

1.Array数组与变量概念与区别 变量是一段内存空间,并且变量与变量之间是多数是不连续的内存空间 Array数组是由多个变量组成,数组中的变量称为元素,数组中的元素是连续的内存空间 2.声明数组 declare -a 数组名 例如:声明一个数组STU并初始化值 写法1: declare -a STU STU[0]=Willow STU[1}=Tom STU[2]=Redhat 写法2: STU=(Willow Tom Redhat) #元素之间用空格隔开,元素从0开始依次赋值,不能跳跃 写法3

linux下Bash编程组合测试及编写脚本(五)

linux下Bash编程组合测试及编写综合脚本(五) 1.Bash编程组合测试条件 -a: 与关系 -o: 或关系 !: 非关系 表示方法1:[ $# -gt 100 -a $# -le 500 ] 表示方法2:[ $# -gt 100 ] && [ $# -le 500 ] 2.编写一个任意添加与删除用户的脚本,要求如下: 2.1:如果脚本选项是--add:,将添加用户; 如果选项是--del,将删除用户,如果是--help显示帮助信息 2.2:脚本选项后面的参数可任意指定多个用户并且用

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc

Linux下同步工具inotify+rsync使用详解

Linux下同步工具inotify+rsync使用详解 Posted on 2014-12-12 |  In Linux|  9|  Visitors 438 1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行Rsync serve

linux下find(文件查找)命令的详解

文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在

LINUX下ORACLE相关的内核参数详解

ORACLE相关的内核参数详解 1.kernel.sem [[email protected] ~]# cat /proc/sys/kernel/sem 250         32000    100         142 [[email protected] ~]#  ipcs -sl ------ Semaphore Limits -------- max number of arrays = 142 max semaphores per array = 250 max semaphor

Linux下安装Hadoop(2.7.1)详解及WordCount运行

一.引言 在完成了Storm的环境配置之后,想着鼓捣一下Hadoop的安装,网上面的教程好多,但是没有一个特别切合的,所以在安装的过程中还是遇到了很多的麻烦,并且最后不断的查阅资料,终于解决了问题,感觉还是很好的,下面废话不多说,开始进入正题. 本机器的配置环境如下: Hadoop(2.7.1) Ubuntu Linux(64位系统) 下面分为几个步骤来详解配置过程. 二.安装ssh服务 进入shell命令,输入如下命令,查看是否已经安装好ssh服务,若没有,则使用如下命令进行安装: sudo

Linux 下PS1 PS2 PS3 PS4 提示符详解

很多人在用Linux时,对提示符都不太注重,能够利用好提示符可更直观地查看,利于自己的判断 Linux下有PS1 PS2 PS3 PS4 四类提示符,这四个变量都是环境变量,至于系统里有哪些环境变量,可使用命令 "env"来查看 PS1命令提示符 PS1有那些配置,或者说PS1里头都能配置些命令提示符的什么东西: \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" \H :完整的主机名称.例如:我的机器名称为:fc4.linu

Linux下各种后门和日志工具详解

攻入Linux系统后,很多入侵者往往就开始得意忘形了.这其中还有一个原因,就是技术性也要求更高了.下面,我们来看看一些常用的经典工具. 1.从这里延伸:后门和连接工具 (1)Httptunnel Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上,它是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙.说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过