sleep 接受的最大数量是多少?

sleep 接受的最大数量是多少?

我想在等待一段时间后运行一些作业:

我可以:

sleep 1000;foo-1;foo-2

我期望的是等待几个小时,sleep这似乎不是最好的解决方案。

我不想设置 cron 作业。

答案1

POSIX 规定:

与采用整数操作数且不指定允许值的子范围的所有其他实用程序一样,sleep需要 [...] 处理最多 2147483647 秒的时间请求。

来源

2147483647秒已经超过68年了。允许实现支持更大的数量。除非您的操作系统极其晦涩难懂,否则您可以期望您的操作系统sleep能够可靠地休眠长达约 68 年。

如果您的操作系统非常晦涩怎么办?考虑一个假想其实现sleep仅限于 16 位有符号整数。最大值为 32767 秒,超过 9 小时。即使这样也sleep可以等待“几个小时”。

我能想象的更有限sleep。 8 位值最多允许 255(如果无符号)或 127(如果有符号)秒。实际上只有几分钟。我怀疑是否有人实施过如此有限的措施sleep

结论是:等待几个小时sleep是一个不错的解决方案。从技术上讲它会起作用。

相关内容