用不同格式打印日期/时间,设置日期和时间,根据日期和时间执行操作,延时操作等。
1. 打印正常日期
$ date
2017年11月15日 18:06:09
2. 打印纪元时间(在类Unix系统中,日期被存储成一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒 起所流逝的秒数。这种计时方式称为纪元时或Unix时间)
$ date +%s
1510740380
3.我们可以从给定格式的日期串中得出对应的纪年时。在输入时有多种日期格式可供选择。如果要从系统日志中或者其他标准应用程序生成的输出中获取日期,那就完全不用烦心日期串格式的问题。
$ date --date "Thu Nov 18 08:07:21 IST 2010" +%s
1290047841
4. 用格式串结合 + 作为 date 命令的参数,可以按照你的选择打印出对应格式的日期。
$ date "+%d %B %Y"
15 十一月 2017
$ date "+%Y %B %d"
2017 十一月 15
5. 设置日期和时间(date -s " 格式化的日期字符串")
$ date -s "16 Nov 2017 01:01:01"
2017年11月16日 1:01:01
6. 有时候,我们需要检查一组命令所花费的时间,可以使用以下代码
#!/bin/bash
#文件名: time_take.sh
start=$(date +%s) //读取开始时间
date "+%d %B %Y"; //命令
statements;
end=$(date +%s) //读取结束时间
difference=$(( end - start)) //计算时间差
echo Time taken to execute "date "+%d %B %Y"" is $difference seconds. //输出
结果:
$ /c/Users/Administrator/Desktop/time_take.sh
15 十一月 2017
/c/Users/Administrator/Desktop/time_take.sh: line 5: statements: command not found
Time taken to execute date +%d %B %Y is 1 seconds.
7.纪元时被定义为从世界标准时间1970年1月1日0时0分0秒起至当前时刻的总秒数,不包括闰秒。当计算两个日期或两段时间的差值时,纪元时很有用处。你可以得出两个特定时间戳的纪元时间,并计算出两者之间的差值,由此就能知道两个日期之间相隔了多少秒。
星期
%a(例如:Sat)
%A(例如:Saturday)
月
%b(例如:Nov)
%B(例如:November)
日 %d(例如:31)
固定格式日期(mm/dd/yy)
%D(例如:10/18/10)
年
%y(例如:10)
%Y(例如:2010)
小时
%I或%H(例如:08)
分钟
%M(例如:33)
秒
%S(例如:10)
纳秒
%N(例如:695208515)
Unix纪元时(以秒为单位)
%s(例如:1290049486)
8. 在脚本中生成延时 sleep
#!/bin/bash
#文件名: sleep.sh
echo -n Count:
tput sc //保存当前光标位置,就是说Count:不消失
count=0; //定义count为0
while true; //循环开始
do
if [ $count -lt 40 ]; //判断count是不是等于40
then
let count++;
sleep 1; //延时1s
tput rc //恢复光标到最后保存位置
tput ed //删除从当前光标位置到行尾的所有信息
echo -n $count; //输出数字
else exit 0;
fi
done
1. 打印正常日期
$ date
2017年11月15日 18:06:09
2. 打印纪元时间(在类Unix系统中,日期被存储成一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒 起所流逝的秒数。这种计时方式称为纪元时或Unix时间)
$ date +%s
1510740380
3.我们可以从给定格式的日期串中得出对应的纪年时。在输入时有多种日期格式可供选择。如果要从系统日志中或者其他标准应用程序生成的输出中获取日期,那就完全不用烦心日期串格式的问题。
$ date --date "Thu Nov 18 08:07:21 IST 2010" +%s
1290047841
4. 用格式串结合 + 作为 date 命令的参数,可以按照你的选择打印出对应格式的日期。
$ date "+%d %B %Y"
15 十一月 2017
$ date "+%Y %B %d"
2017 十一月 15
5. 设置日期和时间(date -s " 格式化的日期字符串")
$ date -s "16 Nov 2017 01:01:01"
2017年11月16日 1:01:01
6. 有时候,我们需要检查一组命令所花费的时间,可以使用以下代码
#!/bin/bash
#文件名: time_take.sh
start=$(date +%s) //读取开始时间
date "+%d %B %Y"; //命令
statements;
end=$(date +%s) //读取结束时间
difference=$(( end - start)) //计算时间差
echo Time taken to execute "date "+%d %B %Y"" is $difference seconds. //输出
结果:
$ /c/Users/Administrator/Desktop/time_take.sh
15 十一月 2017
/c/Users/Administrator/Desktop/time_take.sh: line 5: statements: command not found
Time taken to execute date +%d %B %Y is 1 seconds.
7.纪元时被定义为从世界标准时间1970年1月1日0时0分0秒起至当前时刻的总秒数,不包括闰秒。当计算两个日期或两段时间的差值时,纪元时很有用处。你可以得出两个特定时间戳的纪元时间,并计算出两者之间的差值,由此就能知道两个日期之间相隔了多少秒。
星期
%a(例如:Sat)
%A(例如:Saturday)
月
%b(例如:Nov)
%B(例如:November)
日 %d(例如:31)
固定格式日期(mm/dd/yy)
%D(例如:10/18/10)
年
%y(例如:10)
%Y(例如:2010)
小时
%I或%H(例如:08)
分钟
%M(例如:33)
秒
%S(例如:10)
纳秒
%N(例如:695208515)
Unix纪元时(以秒为单位)
%s(例如:1290049486)
8. 在脚本中生成延时 sleep
#!/bin/bash
#文件名: sleep.sh
echo -n Count:
tput sc //保存当前光标位置,就是说Count:不消失
count=0; //定义count为0
while true; //循环开始
do
if [ $count -lt 40 ]; //判断count是不是等于40
then
let count++;
sleep 1; //延时1s
tput rc //恢复光标到最后保存位置
tput ed //删除从当前光标位置到行尾的所有信息
echo -n $count; //输出数字
else exit 0;
fi
done