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       执行脚本

转载于:https://blog.51cto.com/willow/1763691

Linux下Bash编程之算术运算符详解(三)相关推荐

  1. Linux下服务器基本环境搭建步骤详解(三种软件安装方式)

    Linux下服务器基本环境搭建 小伙伴们注意看:下面使用三种方式分别安装JDK.Tomcat.Docker进行演示 操作系统基于CentOs7. 文章目录 Linux下服务器基本环境搭建 前言 一.L ...

  2. linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)

    linux下Bash编程until语句及格式化硬盘分区等编写脚本(十) 1.循环语句结构总结 1.1.while语句当条件满足时,进入循环语句 while 条件; do 语句 done 1.2.unt ...

  3. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...

    在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...

  4. kill -9 进程号杀不死可以用下面的杀掉 Linux下强制杀死进程的方法详解

    常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ...

  5. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  6. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  7. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  8. linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...

    在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...

  9. linux下多线程的创建与等待详解 【转载】

    linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...

  10. linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解

    <tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...

最新文章

  1. Windows Azure Storage (25) Azure Append Blob
  2. list对象_list对象,容量自适应的数组式容器
  3. modbus-rtu qt4-serialport2------micro2440 as host
  4. 微信小程序获取用户的 OpenId (附前端代码)
  5. bmp文件格式_一次性解决CAD转换成BMP格式图片的问题
  6. 一个表的信息插入到另一个表里面,如果遇到重复的就覆盖
  7. echart 多柱图只显示部分数据标签_python|读取Excel生成pyecharts动态分析图
  8. 深度学习中常用优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
  9. Clojure 学习入门(6)- 函数定义
  10. P2P业务整体流程图
  11. Word各级标题格式设置和自动排序(标题序号)设置
  12. 高性能零售IT系统的建设05-从0打造一个每秒万级并发的互联网交易系统的技术全架构
  13. 吴国平:开发旅游小镇是一款养成类游戏 | 十年二十人
  14. 百度指数爬取+pyppeteer登录(解决旋转验证码)
  15. vue.js - 收藏集 - 掘金
  16. 什么是鸟撞?该如何设计防鸟撞的建筑?#可持续设计
  17. Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data
  18. 进程、线程、协程、管程
  19. java匹配字段返回成功,Java MongoTemplate查询返回指定字段及指定数量的数据
  20. Amazon CloudFront CDN + s3 源站跨域配置

热门文章

  1. 使用docker搭建zookeeper集群
  2. RabbitMQ消费端自定义监听(九)
  3. e3mall商城的归纳总结10之freemarker的使用和sso单点登录系统的简介
  4. Python基础模块
  5. 三角网格表面高斯曲率的计算与可视化
  6. HTML-a标签添加下划线
  7. Discuz! 7.2 二次开发基础 (一)
  8. Pro ASP.NET MVC - [3]Prerequisites(前提) - [2]Domain Modeling
  9. Codeforces Round #125 (Div. 2)
  10. Easyui datebox单击文本框显示日期选择