Linux下Bash编程之算术运算符详解(三)
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编程之算术运算符详解(三)相关推荐
- Linux下服务器基本环境搭建步骤详解(三种软件安装方式)
Linux下服务器基本环境搭建 小伙伴们注意看:下面使用三种方式分别安装JDK.Tomcat.Docker进行演示 操作系统基于CentOs7. 文章目录 Linux下服务器基本环境搭建 前言 一.L ...
- linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)
linux下Bash编程until语句及格式化硬盘分区等编写脚本(十) 1.循环语句结构总结 1.1.while语句当条件满足时,进入循环语句 while 条件; do 语句 done 1.2.unt ...
- linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...
在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...
- kill -9 进程号杀不死可以用下面的杀掉 Linux下强制杀死进程的方法详解
常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ...
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...
- Linux redis安装教程,Linux 下redis5.0.0安装教程详解
Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...
- linux 更新软件命令 失败,对linux下软件(库)的更新命令详解
在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...
- linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...
在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...
- linux下多线程的创建与等待详解 【转载】
linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...
- linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解
<tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...
最新文章
- Windows Azure Storage (25) Azure Append Blob
- list对象_list对象,容量自适应的数组式容器
- modbus-rtu qt4-serialport2------micro2440 as host
- 微信小程序获取用户的 OpenId (附前端代码)
- bmp文件格式_一次性解决CAD转换成BMP格式图片的问题
- 一个表的信息插入到另一个表里面,如果遇到重复的就覆盖
- echart 多柱图只显示部分数据标签_python|读取Excel生成pyecharts动态分析图
- 深度学习中常用优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
- Clojure 学习入门(6)- 函数定义
- P2P业务整体流程图
- Word各级标题格式设置和自动排序(标题序号)设置
- 高性能零售IT系统的建设05-从0打造一个每秒万级并发的互联网交易系统的技术全架构
- 吴国平:开发旅游小镇是一款养成类游戏 | 十年二十人
- 百度指数爬取+pyppeteer登录(解决旋转验证码)
- vue.js - 收藏集 - 掘金
- 什么是鸟撞?该如何设计防鸟撞的建筑?#可持续设计
- Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data
- 进程、线程、协程、管程
- java匹配字段返回成功,Java MongoTemplate查询返回指定字段及指定数量的数据
- Amazon CloudFront CDN + s3 源站跨域配置
热门文章
- 使用docker搭建zookeeper集群
- RabbitMQ消费端自定义监听(九)
- e3mall商城的归纳总结10之freemarker的使用和sso单点登录系统的简介
- Python基础模块
- 三角网格表面高斯曲率的计算与可视化
- HTML-a标签添加下划线
- Discuz! 7.2 二次开发基础 (一)
- Pro ASP.NET MVC - [3]Prerequisites(前提) - [2]Domain Modeling
- Codeforces Round #125 (Div. 2)
- Easyui datebox单击文本框显示日期选择