Shell之日期.时间.延时.调试脚本

  1. 获取并设置日期及延时
  2. 在脚本中生成延时
  3. 调试脚本

获取并设置日期及延时

延时可以用来在程序执行过程中等待一段时间(比如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 sc

for 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 sc

for 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:禁止打印输入

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯雾652

你的支持是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值