Bash:如何短暂延迟?

Rai*_*han 8 bash solaris sunos

如何在bash中做出短暂的延迟(不到一秒钟)?睡眠命令中的最小时间单位是1秒.我在SunOS 5.10中使用bash 3.0.

Chr*_*uma 7

我不知道这是什么版本的实现,但我的睡眠版本(v6.12)接受小数.sleep 0.5作品.

如果你的年龄太大,那么短的python或C程序可能是你唯一的解决方案.


Kei*_*son 4

SunOS (Solaris) 默认情况下可能没有安装 GNU 工具。您可以考虑安装它们。它们也有可能已经安装在您的系统中,也许安装在默认目录之外的某个目录中$PATH。GNUsleep是 coreutils 软件包的一部分。

如果你有 Perl,那么:

perl -MTime::HiRes -e 'Time::HiRes::usleep 500000'
Run Code Online (Sandbox Code Playgroud)

应该休眠 500000 微秒(0.5 秒)——但是调用 Perl 的开销是巨大的。

usleep()为了最小化开销,我会编写一个调用or的小型 C 程序nanosleep()。请注意,usleep()可能无法处理大于 1 秒的间隔。