当前位置: 首页 > 科技观察

如何在Linux系统中使用Sleep和Wait命令

时间:2023-03-20 23:54:39 科技观察

Linux中的sleep和wait命令允许您以选定的速度运行命令或在等待任务完成后捕获并显示任务的退出状态。sleep只是在命令之间插入一个定时暂停。等待命令在完成之前不会被通知它已完成。睡眠命令睡眠命令暂停指定的时间。它通常用于脚本,但也适用于命令行。在下面的示例中,睡眠在两个日期命令之间暂停30秒。[root@localhost~]#date;sleep30;dateThuNov1105:06:44EST2021ThuNov1105:07:14EST2021睡眠命令采用数字参数作为秒数。但也可以通过在参数中添加一个字符使其休眠不同的时间:10s=10秒1m=1分钟2h=2小时3d=3天[root@localhost~]#date;sleep10s;dateThuNov1105:11:09EST2021ThuNov1105:11:19EST2021休眠时间也可以小于1秒,加个...1=十分之一秒.01=百分之一秒.001=千分之一秒[root@localhost~]#date;sleep.1;dateThuNov1105:14:03EST2021ThuNov1105:14:03EST2021当您想监视某些活动时,睡眠命令通常用于定期运行命令,例如每10秒或每分钟。例如,您可能正在等待同事登录文件服务器。您可以运行这样的命令:[root@localhost~]#whiletrue;dowho;sleep100;done以观察内存使用情况的变化。[root@localhost~]#whiletrue;dofree-h;sleep5;doneWait命令wait命令在等待后台进程完成后捕获后台进程的退出状态。您也可以在脚本中使用它。将sleep命令替换为要等待的进程。此脚本还显示退出状态。#!/bin/bashsleep5&process_id=$!echo"PID:$process_id"wait$process_idecho"Exitstatus:$?"第一行在后台启动睡眠命令。第二行获取进程ID$!最近执行的后台进程。然后脚本显示该信息,等待进程完成并显示退出状态。如果您使用wait-n(不需要额外参数),wait将等待任何后台任务完成。在下面的示例中,sleep6命令先完成,脚本结束,但其他两个sleep进程将继续在后台运行几秒钟。#!/bin/bashsleep15&sleep9&sleep6&wait-necho“第一份工作已经完成。”如果改成下面的脚本,它会告诉你每个睡眠过程什么时候完成。由于时间原因,这将从睡眠过程开始时以相反的顺序发生。#!/bin/bashsleep15&sleep9&sleep6&wait-necho"Firstjobhasbeencompleted."wait-necho"Nextjobhasbeencompleted."wait-necho"Alljobshavebeencompleted."注意:等待进程必须是“子进程”(在当前shell中启动的进程)。总结两者都可以在脚本或命令行中使用。但是,等待命令仅适用于在后台运行的进程。