如何在bash中短暂延迟(不到一秒钟)?睡眠命令中的最小时间单位是1秒。我在SunOS 5.10中使用bash 3.0。
答案 0 :(得分:7)
我不知道这是什么版本的实现,但我的睡眠版本(v6.12)接受小数。 sleep 0.5
有效。
如果你的年龄太大,那么短的python或C程序可能是你唯一的解决方案。
答案 1 :(得分:4)
SunOS(Solaris)可能默认没有安装GNU工具。您可以考虑安装它们。它们也可能已安装在您的系统中,可能位于默认$PATH
内的某个目录中。 GNU sleep
是coreutils包的一部分。
如果您有Perl,那么:
perl -MTime::HiRes -e 'Time::HiRes::usleep 500000'
应该睡眠500000微秒(0.5秒) - 但调用perl的开销很大。
为了减少开销,我会编写一个调用usleep()
或nanosleep()
的小型C程序。请注意,usleep()
可能无法处理大于1秒的间隔。
答案 2 :(得分:1)
将此内容写入“usleep.c”
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char **argv) {
usleep( atol( argv[1] ) );
}
然后输入
make usleep
./usleep 1000000
答案 3 :(得分:0)
您是否尝试过查看手册页?它应该有一种方法来做一个不到一秒的延迟,我现在不是Linux机器所以不能为你查找它。
答案 4 :(得分:0)
你可以使用我们的睡眠。以下是手册页的链接:http://linuxmanpages.com/man1/usleep.1.php
答案 5 :(得分:0)
一个非常非常非常简单的pythonesque usleep十进制小数。 它不是非常精确,并且没有对命令行args进行错误检查
#!/usr/bin/python
import sys
import time
if len(sys.argv) == 1:
sleepTime = 1.0
else:
sleepTime = str(sys.argv[1])
time.sleep(float(sleepTime))