gpt4 book ai didi

linux - 在 Linux bash 中, sleep 一定的数字会永远持续下去

转载 作者:太空狗 更新时间:2023-10-29 12:34:11 26 4
gpt4 key购买 nike

我正在 Ubuntu 13.04 中编写一个 bash 脚本,它需要 sleep 参数传递的特定秒数。我已经确定 sleep 允许 float 查看文档:

Unlike most implementations that require NUMBER be an integer, here NUMBER may be an arbitrary floating point number.

确实它适用于某些值。例如,“0.1”、“0.01”、“0.02”、“0.03”或“0.4”是可以的,但对于“0.04”或“0.05”等其他值,它会永远持续下去。

我的意思是,这将起作用:

sleep 0.03

...但这将永远持续下去:

sleep 0.04

谁知道为什么?

谢谢!

最佳答案

这可能是 sleep 命令的错误...

您可以选择使用 bash 实现,直到该错误被修复,在您的脚本上创建此别名,但如果您想模拟所有功能,请参阅 sleep --help

alias sleep='read -t'

现在尝试一下:

date +"%S.%N"; sleep 0.04; date +"%S.%N";

这已经适用于 ubuntu 12.10。

编辑:这不太精确,但如果您不需要 sleep 命令的额外功能,它也可以工作:

function FUNCsleep() { 
local delay=$1;
local beginAt=`date +"%s.%N"`;
while true; do
local now=`date +"%s.%N"`;
if((`echo "($now-$beginAt)>=$delay" |bc -l`==1));then
break;
fi;
done;
}
alias sleep='FUNCsleep'

关于linux - 在 Linux bash 中, sleep 一定的数字会永远持续下去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com