shell程序计时

shell程序计时,第1张

有时候写了一个pipeline,我们想知道具体会跑多长时间,这就需要实现计时功能,可以用date或者time实现。

首先用man date查看以下说明:

举几个例子更容易理解:

输出:

DATE: 2020-01-13

TIME: 10:48:28

(当前时间)

输出:

2020年 1月13日 星期一 10时50分20秒 CST

输出:

0113105443

即1月13日10点54分43秒。

比如以下脚本计时:

可以输出20。

输出:

real0m20.007s

user0m0.002s

sys 0m0.003s

如果测试脚本的话,格式为time sh xxx.sh。

欢迎关注!

linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:

crontab -e 编辑周期任务

30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smb

crontab命令说明:

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成 *** 作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

语法

crontab(选项)(参数)

选项

-e:编辑该用户的计时器设置;

-l:列出该用户的计时器设置;

-r:删除该用户的计时器设置;

-u<用户名称>:指定要设定计时器的用户名称。

参数

crontab文件:指定包含待执行任务的crontab文件。

知识扩展

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

crontab文件的含义:

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command 顺序:分 时 日 月 周

其中:

minute: 表示分钟,可以是从0到59之间的任何整数

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令 *** 作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

1、首先在shell编程中同样具有while循环结构,语法为while [条件表达式]。

2、在进行运算的时候,比较经典的乘法口诀输出也可以直接使用whilea循环进行输出。

3、虽然while与until循环很相似,但从本质上来说until循环与while循环有着差别,until是当循环条件不满足的时候才执行,而while循环只有当条件满足的时候才执行。

4、while循环同样可以读取从键盘输入的参数来进行执行,如下图因为如果比10小会进入死循环,所以这里直接使用了退出。

5、同样在循环中可以嵌套循环,这个不仅是在while循环体中,在其它的循环体中也可以进行,如下图向脚本中添加if循环即可完成。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11596352.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存