- 获取并设置日期及延时
- 在脚本中生成延时
- 调试脚本
获取并设置日期及延时
延时可以用来在程序执行过程中等待一段时间(比如1秒),或是每隔几秒钟(或是几个月) 监督某项任务;系统内部,日期被存储成一个整数;其取值为自1970年1月1日0时0分0秒①起所流逝的秒数。这种计时方式称为纪元时或Unix时间
.将指定日期格式转换为纪元时(时间戳)
[pstuser@localhost ~]$ date -d "2023-01-22 1:22" +%s
1674318120
转换成系统默认的日期格式
[root@localhost ~]# date -d @1673445606
Wed Jan 11 23:00:06 JST 2023
转换成指定的日期格式
[root@localhost ~]# date -d @1674223201 "+%Y-%m-%d %H:%M:%S"
2023-01-20 23:00:01
date命令所支持的格式选项
工作日(weekday) | %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) |
举例说明:
[pstuser@localhost ~]$ date +%a
Mon
[pstuser@localhost ~]$ date +%A
Monday
[pstuser@localhost ~]$ date +%y
23
[pstuser@localhost ~]$ date +%H
12
[pstuser@localhost ~]$ date +%D
02/20/23
[pstuser@localhost ~]$ date +%N
765212021
在脚本中生成延时
sleep命令可以延迟脚本执行一段时间(以秒为单位)。下面的脚本使用tput和sleep从0开 始计时到40秒
[root@localhost ~]# cat test.sh
#!/bin/bash
echo count:
tput scfor count in `seq 0 40`
do
tput rc
tput ed
echo -n $count
sleep 1
done变量依次使用了由seq命令生成的一系列数字。我们用tput sc存储光标 位置。在每次循环中,通过tput rc恢复之前存储的光标位置,在终端中打印出新的count值, 然后使用tputs ed清除从当前光标位置到行尾之间的所有内容。行被清空之后,脚本就可以显 示出新的值。sleep可以使脚本在每次循环迭代之间延迟1秒钟
调试脚本
调试信息可以帮你弄清楚是什么原因使得程序 行为异常
对本脚本进行全部调试
[root@localhost ~]# sh -x test.sh
对本脚本进行部分调试
[root@localhost ~]# cat test.sh
#!/bin/bash
echo count:
set -x //开始调试的部分
tput scfor count in `seq 0 40`
do
tput rc
tput ed
set +x //结束调试的部分
echo -n $count
sleep 2
done
set -x:在执行调试时显示参数和命令
set +x:禁止调试
set -v:当命令进行读取时显示输入
set +v:禁止打印输入