linuxshelldate
Ⅰ 为什么linux的执行shell程序和bash命令日期不显示
你echo后面的字符打错,不是单引号 而应该是反引号。 当你echo 后面是指令的时候 就需要反引号
Ⅱ 如何正确在Linux Shell脚本中定义一个时间变量
1、创建脚本 test.sh,并入截图内容。
Ⅲ linux shell编程中怎么判断时间相等
#!/bin/bash#格式化过期日期,格式化过期日期完整时间以当前时间作为参考!expday="2018-04-11 `date +%T`"echo "Expire day is $expday"#当前日期时间格式为stamp时间戳todays=`date +%s`echo "Today is $(date +"%F %T")"#以下2种方式做时间的四则运算,分别使用 let 或者 $(( ))#过期日期已格式化,规避整数运算的误差(去余数)#let dayDiff=($(date -d "$expday" +%s)-$todays)/86400dayDiff=$(( ($(date -d "$expday" +%s)-$todays)/86400 ))echo "Diff day is $dayDiff days!"
其余说明:
bash 不支持浮点运算,如果需要进行浮点运算,需要借助bc,awk 处理。Linux命令需求的话可如下图进行查询
Ⅳ 使用linux shell 命令date "+%Y-%m-%d %H:%M:%S" 后如何丢弃后面的秒数据
date "+%Y-%m-%d %H:%M:%S" | cut -d ":" -f1,2
Ⅳ linux shell脚本 每秒执行一次date输出到/home/date中,想要每分钟清空一下date文件 在脚本中怎么加命令
这个需要使用计划任务 crontab
cd /root
echo "echo >/home/date">>test.sh
chmod +x test.sh
echo "*/1* * * * root sh /root/test.sh" >>/etc/crontab
/etc/init.d/crond restart
Ⅵ LINUX SHELL日期转换
这些都是单个的命令系统日期,时间date目录pwd环境变量env网络配置ifconfig
Ⅶ linux Shell 帮忙解释下set `date',month=$2,day=$3这些是什么意思执行时日期怎么传参数进去
你确定脚本里是这么写的吗?
set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值
month=$2
这个命令是 把第二个参数的值赋值给变量 month 的意思
其他的同上
Ⅷ Linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本
使用date命令加上合适的时间格式化字符串(+%s),会显示当前时间(或-d参数指定的时间)与1970-01-01 00:00:00相差的秒数(详细可以参考date的man手册)
所以基本想法就是使用date命令分别获取当前时间与文件修改时间的秒数,然后看这2个秒数之间是否有相差180秒以上。
获取当前时间比较简单,直接date +%s就ok了
下面看看如何获取文件时间
使用stat 命令后面跟一个文件名可以获取文件的状态,包括文件修改时间。其中文件修改时间会单独一行显示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具体的精度可能系统不同略微有些差别,但大致格式是这样)
所以我们可以stat myfilename | grep Modify来获取文件的修改时间的信息,然后通过awk分别获取时间的日期和时间段
stat myfilename | grep Modify | awk '{print $2}' #这句获取了日期段,即上面例子里面的2013-02-21
stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #这句获取了时间段,即上面例子里面的17:58:05,具体关于awk的使用可以参考awk的使用手册
那么现在可以获取文件修改时间与1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s
那么这个时间与当前时间想减的结果与180相比就可以知道是否满足条件了,满足条件的话就可以执行相应的命令。
参考代码如下:
current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi
Ⅸ linux shell 获取是一个时间段的日期
1、date.sh代码
#!/bin/sh
beg_date=`date -d "$1" +%s`
end_date=`date -d "$2" +%s`
if [[ -z $1 ]]||[[ -z $2 ]];then
echo "Usage: $0 YYYYMMDD YYYYMMDD"
exit 0;
fi
if [[ ${beg_date} > ${end_date} ]];then
echo "The end_date < beg_date ;Please input the right date,example: $0 20140101 20140301"
exit 0;
fi
for (( i=${beg_date};i<=${end_date};i=i+86400))
do
date -d @${i} +%Y%m%d
done
2、实例./date.sh 20140101 20140201
Ⅹ linux中,怎么通过shell语句获取当前日期,输出格式要求20111224.
在Linux下,可以通过date语句来获取当前日期:
输入:date +%Y%m%d
输出:20190314
命令实际执行情况如下图:
(10)linuxshelldate扩展阅读
GNU 对 date 命令的另一个扩展是 -d 选项,使用这个功能强大的选项,您可以完成很多有意义的工作。
1、快速地查明一个特定的日期究竟是星期几:
输入:date -d "nov 22"
输出:2019年 11月 22日 星期五 00:00:00 CST
在本示例中,您可以看到今年(2019年)的 11 月 22 日是星期五。
2、获得相对日期
-d 选项还可以告诉您,相对于当前日期之前或者以后的日期。
如,您需要了解两星期以后的日期,那么:
输入: date -d "2 weeks"
输出:2019年 03月 29日 星期五 00:12:24 CST
3、使用 next/last指令,您可以得到以后的星期几是哪一天:
输入: date -d "next monday" (下周一的日期)
输入: date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
输入: date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
输入: date -d last-month +%Y%m(上个月是几月)
输入: date -d next-month +%Y%m(下个月是几月)
4、使用 ago 指令,您可以得到过去的日期:
输入: date -d "30 days ago" (30天前的日期)
5、您可以使用负数以得到相反的日期:
输入: date -d "dec 14 -2 weeks" (相对:dec 14这个日期的两周前的日期)
输入: date -d "-100 days" (100天以前的日期)
输入: date -d "50 days" (50天后的日期)