8

bashで短い遅延(1秒未満)を作成する方法は? スリープ コマンドの最小時間単位は 1 秒です。SunOS 5.10 で bash 3.0 を使用しています。

4

6 に答える 6

7

これが実装されたバージョンはわかりませんが、私のバージョンのスリープ (v6.12) は小数を受け入れます。sleep 0.5動作します。

あなたのものがそれには古すぎる場合は、短い python または C プログラムがおそらく唯一の解決策になるでしょう。

于 2011-10-13T17:01:01.393 に答える
4

SunOS (Solaris) には、デフォルトで GNU ツールがインストールされていない可能性があります。それらをインストールすることを検討してください。システムにすでにインストールされている可能性もあります。おそらく、デフォルトにないディレクトリにある可能性があります$PATH。GNUsleepは coreutils パッケージの一部です。

Perl を使用している場合は、次のようになります。

perl -MTime::HiRes -e 'Time::HiRes::usleep 500000'

500000 マイクロ秒 (0.5 秒) スリープする必要がありますが、perl を呼び出すオーバーヘッドはかなりのものです。

usleep()オーバーヘッドを最小限に抑えるために、 orを呼び出す小さな C プログラムを作成しますnanosleep()usleep()1 秒を超える間隔を処理できない場合があることに注意してください。

于 2011-10-13T17:29:47.607 に答える
1

これを「usleep.c」に書き込みます

#include <unistd.h>
#include <stdlib.h>
int main(int argc, char **argv) {
    usleep( atol( argv[1] ) );
}

そしてタイプ

make usleep
./usleep 1000000
于 2013-03-21T15:52:23.860 に答える
0

manページを見てみましたか?1 秒未満の遅延を行う方法が必要です。現在、私は Linux マシンではないため、調べることはできません。

于 2011-10-13T17:01:13.180 に答える
0

スリープを使用できます。man ページへのリンクは次のとおりです: http://linuxmanpages.com/man1/usleep.1.php

于 2011-10-13T17:02:29.187 に答える