Shell时间运算及时间差计算方法_linux shell

最近一段时间,在处理Shell 脚本时候,遇到时间的处理问题。 时间的加减,以及时间差的计算。

一、时间加减

这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒。

如:1990-01-01 01:01:01  加上 1小时 20分

处理方法:

a.将基础时间转为时间戳

 

time1=$(date +%s -d '1990-01-01 01:01:01')

echo $time1

631126861 【时间戳】

b.将增加时间变成秒

[root@localhost ~]# time2=$((1*60*60+20*60))
[root@localhost ~]# echo $time2

4800

c.两个时间相加,计算出结果时间

time1=$(($time1+$time2))

time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");

echo $time1

1990-01-01 02:21:01

二、时间差计算方法

如:2010-01-01 与 2009-01-01 11:11:11 时间差

原理:同样转成时间戳,然后计算天,时,分,秒

time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));

echo time1

将time1 / 60 秒,就变成分了。

补充说明:

shell 单括号运算符号:

复制代码 代码如下:

a=$(date);

等同于:a=`date`;

双括号运算符:

复制代码 代码如下:

a=$((1+2));

echo $a;

等同于:

复制代码 代码如下:

a=`expr 1 + 2`

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索shell
, 时间运算
时间差计算
linux shell 运算、linux shell 逻辑运算、linux shell 数学运算、linux shell 变量运算、linux shell 算术运算,以便于您获取更多的相关知识。

时间: 2024-09-24 21:03:52

Shell时间运算及时间差计算方法_linux shell的相关文章

什么是Shell?Shell脚本基础知识详细介绍_linux shell

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好L

101个shell脚本 猜数字游戏代码_linux shell

原本书上这个例子是教调试脚本的,它故意给出的脚本中有几个错误,教我们认识系统提示的错误,并修改运行.但比较难写出来,所以把修改好了的脚本放上来,这个脚本比较有趣味的 #!/bin/sh # hilow -- A simple number-guessing game biggest=100 # maximum number possible guess=0 # guessed by player guesses=0 # number of guesses made number=$(($$ %

Shell脚本处理浮点数的运算和比较实例_linux shell

通过top命令看到的进程的CPU.内存的使用率的百分比是一个浮点数,我需要在写脚本时对其进行处理,所以学习了一些,总结如下. 其实,Shell(这里是Bash)本身不具备处理浮点计算的能力,但是可以使用"bc"这个高精度的计算器工具来帮助,另外,也可以在Bash中调用"awk"脚本来处理浮点运算. 1. 用bc来处理计算(包括整型和浮点计算) bc – An arbitrary precision calculator language(1). 通常在Bash脚本中

shell脚本中一些特殊符号_linux shell

在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \\<...\\> + - %= == != # 井号 (comments) 这几乎是个满场都有的符号,除了先前已经提过的\"第一行\"

Shell中eval的用法示例_linux shell

功能说明:告知shell取出eval的参数,重新运算求出参数的内容. 语 法:eval [参数] 补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行. 参 数:参数不限数目,彼此之间用分号分开. 1.执行命令行之前扫描它两次,再次运算求出参数的内容. 复制代码 代码如下: [root@localhost blue]# a="ls |more" [root@localhost blue]# $a                                       

Shell中的for循环总结_linux shell

关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 复制代码 代码如下: for((i=1;i<=10;i++));do echo $(expr $i \* 4);done 在shell中常用的是 for i in $(seq 10) 复制代码 代码如下: for i in `ls` for i in ${arr[@]} for i in $* ; do for File in /proc/sys/net

linux中shell脚本实现下载完关机_linux shell

用mint 有一段时间了,下载基本用firefox,有时下载几个G的游戏.可是firefox没有找到下载完关机的选择.处于这个原因,写了这个. download_shutdown.sh #!/bin/bash # Created By: Demo <demo@demo.com> # Created Time: 2015-01-30 12:36:44 # Modified Time: 2015-01-30 12:54:21 dir=$1 while [ "1" ] do if

5个实用的shell脚本面试题和答案_linux shell

这边提到的5个面试问题,延续之前的有关Linux面试问题和答案.如果你是Tecmint的读者,你的支持我非常感谢. 1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录. 答案 : 输出用户名,当前日期和时间,以及当前工作目录的命令就是logname,date,who i am和pwd. 现在,创建一个名为userstats.sh文件,将下面的代码添加到它. 复制代码 代码如下: #!/bin/bash echo "Hello, $LOGNAME" echo &quo

让Linux下的cron以秒为单位执行shell脚本的3种方法_linux shell

需要用到Shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢? 第一种方法: 当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下: cat kick.sh 复制代码 代码如下: #!/bin/bash while : ;do  /home/somedir/scripts.sh 2>/dev/null &  sleep 3 done 注意第一次运行时请不要使用 bash kick.sh & 这种后台运行的方式,它