shell 脚本中 wait 和 sleep 的区别

shell 脚本中 wait 和 sleep 的区别_第1张图片

在 shell 脚本世界中,理解各种命令之间的细微差别对于编写高效的脚本至关重要。两个经常引起混淆的命令是waitsleep。虽然它们看上去很相似,但在脚本执行中每个都有其独特的用途。

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 脚本的关键。

我的开源项目

酷瓜云课堂-开源知识付费解决方案

你可能感兴趣的:(shell)