在 shell 脚本世界中,理解各种命令之间的细微差别对于编写高效的脚本至关重要。两个经常引起混淆的命令是wait 和 sleep。虽然它们看上去很相似,但在脚本执行中每个都有其独特的用途。
The sleep Command
sleep 命令用于在脚本执行过程中延迟一个固定的时间。用于暂停执行一段指定的时间。
Syntax :
sleep NUMBER[SUFFIX]...
- NUMBER 可以是整数或浮点数。
SUFFIX 可以是 s 表示秒(默认),m 表示分钟,h 表示小时,或 d 表示天。
使用示例:
#!/usr/bin/env bash echo "Wait for 5 seconds" sleep 5 echo "Resumed after 5 seconds"
The wait Command
wait 命令用于暂停脚本,直到满足特定条件,通常是完成后台进程。用于脚本执行与后台任务的完成同步。
- Syntax :
wait [id]
id 为后台进程的 job ID。如果没有指定 ID,则该命令等待当前所有子进程完成。
使用示例:
#!/usr/bin/env bash
echo "Start background process"
some_long_running_process &
process_id=$!
echo "Wait for the process to complete"
wait $process_id
echo "Background process completed"
Conclusion
由于不同的原因,wait 和 sleep 在 shell 脚本中都是至关重要的。sleep 直接用于添加延迟,而 wait 则更为复杂,适合于管理进程依赖关系。理解它们的区别是有效编写 shell 脚本的关键。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。