1、介绍
需要以不同的格式打印日期、设置日期和时间、根据日期和时间执行操作。
延时通常用于程序执行过程中提供一段等待时间(比如1秒)。
例如需要在脚本中对某项任务每隔5秒监视一次,就需要知道如何在程序中加入延时。
在Unix系统中,日期被存储成一个整数,其大小为自世界标准UTC1970年1月1日0时0分0秒起所流逝的秒数。
这种计时方式称为纪元时间。
2、读取日期
date
3、打印纪元时
date +%s
可以给定格式的日期串中得出对应的纪年时,在输入时有多种日期格式可供选择。
date --date "Thu Nov 18 08:07:21 IST 2010" +%s
选项--date用于提供日期串作为输入。
注:我们可以使用任意的日期格式选项来打印输出。将日期串作为输入够用来获取给定的日期是星期几。
date --date "Jan 20 2001" +%A
如:日期格式字符串列表:
日期内容 格式
星期 %a (for example, Sat)
%A (for example, Saturday)
月 %b (for example, Nov)
%B (for example, November)
日 %d (for example, 31)
固定格式日期(mm/dd/yy) Date in format (mm/dd/yy) %D (for example, 10/18/10)
年 %y (for example, 10)
%Y (for example, 2010)
小时 %I or %H (For example, 08)
分钟 %M (for example, 33)
秒钟 %S (for example, 10)
纳秒 %N (for example, 695208515)
Unix纪元时(以秒为单位) %s (for example, 1290049486)
4、用格式串结合+作为date命令的参数,可以按照你的选择打印出对应的格式日期。
$ date "+%d %B %Y"
20 May 2010
5、设置日期和时间
date -s "格式化的日期字符串"
例如:
date -s "21 June 2009 11:01:22"
6、需要检查一组命令所花费的时间,可以使用如下的代码
#!/bin/bash
#Filename: time_take.sh
start=$(date +%s)
commands;
statements;
end=$(date +%s)
difference=$(( end - start))
echo Time taken to execute commands is $difference seconds.
7、在编写以循环方式运行的监视脚本时,设置时间间隔是必不可少的。
在脚本中生成延时
#!/bin/bash
#Filename: sleep.sh
echo -n Count:
#存储光标位置
tput sc
#初始值为0
count=0;
while true;
do
if [ $count -lt 40 ];
then
let count++;
#循环内的1秒钟延迟
sleep 1;
#恢复光标位置命令
tput rc
#清除从当前光标位置到行尾之间的所有内容,使用旧的count值可以被清除并写入新值
tput ed
echo -n $count;
else exit 0;
fi
done
需要以不同的格式打印日期、设置日期和时间、根据日期和时间执行操作。
延时通常用于程序执行过程中提供一段等待时间(比如1秒)。
例如需要在脚本中对某项任务每隔5秒监视一次,就需要知道如何在程序中加入延时。
在Unix系统中,日期被存储成一个整数,其大小为自世界标准UTC1970年1月1日0时0分0秒起所流逝的秒数。
这种计时方式称为纪元时间。
2、读取日期
date
3、打印纪元时
date +%s
可以给定格式的日期串中得出对应的纪年时,在输入时有多种日期格式可供选择。
date --date "Thu Nov 18 08:07:21 IST 2010" +%s
选项--date用于提供日期串作为输入。
注:我们可以使用任意的日期格式选项来打印输出。将日期串作为输入够用来获取给定的日期是星期几。
date --date "Jan 20 2001" +%A
如:日期格式字符串列表:
日期内容 格式
星期 %a (for example, Sat)
%A (for example, Saturday)
月 %b (for example, Nov)
%B (for example, November)
日 %d (for example, 31)
固定格式日期(mm/dd/yy) Date in format (mm/dd/yy) %D (for example, 10/18/10)
年 %y (for example, 10)
%Y (for example, 2010)
小时 %I or %H (For example, 08)
分钟 %M (for example, 33)
秒钟 %S (for example, 10)
纳秒 %N (for example, 695208515)
Unix纪元时(以秒为单位) %s (for example, 1290049486)
4、用格式串结合+作为date命令的参数,可以按照你的选择打印出对应的格式日期。
$ date "+%d %B %Y"
20 May 2010
5、设置日期和时间
date -s "格式化的日期字符串"
例如:
date -s "21 June 2009 11:01:22"
6、需要检查一组命令所花费的时间,可以使用如下的代码
#!/bin/bash
#Filename: time_take.sh
start=$(date +%s)
commands;
statements;
end=$(date +%s)
difference=$(( end - start))
echo Time taken to execute commands is $difference seconds.
7、在编写以循环方式运行的监视脚本时,设置时间间隔是必不可少的。
在脚本中生成延时
#!/bin/bash
#Filename: sleep.sh
echo -n Count:
#存储光标位置
tput sc
#初始值为0
count=0;
while true;
do
if [ $count -lt 40 ];
then
let count++;
#循环内的1秒钟延迟
sleep 1;
#恢复光标位置命令
tput rc
#清除从当前光标位置到行尾之间的所有内容,使用旧的count值可以被清除并写入新值
tput ed
echo -n $count;
else exit 0;
fi
done