Linux睡觉和等待命令允许您以选定的速度运行命令或捕获命令,并在等待它完成后显示任务的退出状态。睡觉只需在命令之间插入定时暂停。等待另一方面,等待在通知您已完成之前完成进程。
睡觉
这睡觉命令暂停指定的时间。它通常在脚本中使用,但也可以在命令行中使用。在下面的例子中,睡觉在两者之间暂停一分钟日期命令。
$日期;睡眠60;日期周末9月8日12:10:40 PM EDT 2021周三9:11:40 PM EDT 2021
这睡觉命令将数字参数占用秒数。但是,您可以通过向参数添加另一个字符来询问它以睡眠各种时间:
1米= 1分2小时= 2小时3d = 3天
$日期;睡1米;日期周末9月8日12:16:38 PM EDT 2021周末9月8日12:17:38 PM EDT 2021
事实上,你可以睡觉如果需要的话,一秒钟之内。
.1 = 1/10秒,= 1/100分钟,秒为= 1 / 1,000
$日期;睡觉.1;日期周末9月8日12:18:57 PM EDT 2021年9月8日12:18:57 PM EDT 2021
这睡觉Command通常用于在需要监视某些活动时周期性地运行命令,例如每10秒或每分钟运行一次。例如,也许您正在等待一位同事登录到文件服务器。你可以这样运行一个命令:
$虽然真实> do>谁>睡眠300> DONE SHS PTS / 0 2021-09-07 11:27(192.168.0.10)SHS / 0 2021-09-07 11:32(192.168.0.10)SHS PTS / 02021-09-07 11:37(192.168.0.10)SHS PTS / 0 2021-09-07 11:42(192.168.0.10)SHS / 0 2021-09-07 11:47(192.168.0.10)SHS PTS /0 2021-09-07 11:52(192.168.0.10)NEMO PTS / 1 2021-09-07 11:52(192.168.0.15)<==最后!
你最好留意一下系统的变化。在下面的示例中,我们将观察内存使用情况的变化。
$虽然真实;自由;睡觉10;OFF OFF SCAP:6064124 0 6064124/6064124
重点是,您不希望数据通过屏幕快速飞行,而不是您可以读取或感知。
如果您每天一次运行特定任务,那么您可能会更好地使用cr,但你可以做到这一点睡觉。请记住,您正在运行的任务也需要时间,因此任务可能无法在每天同时运行。
等待
这等待命令捕获后台进程完成后的退出状态。参数应该是进程ID (PID)或进程的作业号(例如4563或%2)。您可以使用如下命令(PID = 819227,作业id = %1)来尝试它:
$ Sleep 10和[1] 819227 $等待%1 [1] +完成睡眠10
您也可以在这样的脚本中使用它。更换睡觉使用要等待的过程命令。此脚本还显示退出状态。
#!/ bin / bash睡眠5和process_id = $!Echo“PID:$ Process_ID”等待$ PROCESS_ID ECHO“退出状态:$?”
第一行开始了睡觉命令在背景中。第二个抓取最近执行的背景过程的进程ID($!)。然后,脚本显示该信息,等待该过程完成并显示退出状态。
如果你使用等待- n(无需其他参数),等待将等待任何背景技术完成。在下面的例子中,睡觉6.命令将首先完成,脚本将结束,但其他两个休眠进程将继续在后台运行一定秒数。
#!/ bin / bash睡眠15和睡眠9和睡眠6和等待-n echo“第一份工作已经完成。”
如果您运行以下脚本,则会告诉您每个脚本睡觉过程完成。由于时间的原因,这将以相反的顺序发生睡觉流程开始。
#!/ bin / bash睡眠15和睡眠9和睡眠6和等待-n echo“第一份工作已经完成。”等待-n echo“下一个工作已经完成。”等待回声“所有工作都已完成。”
注意:等待的进程必须是“child”(在当前shell中启动的一个进程)。
包起来
这睡觉和等待当您想要观察系统更改时,命令可以帮助,而不是从它们完成各种进程时从脚本上发生或从脚本进行反馈。两者都可以在脚本或命令行中使用。然而等待命令(bash内置)仅适用于背景中运行的进程。