Clock

時間取得関数の強化

xgawk では従来の gawk で使われていた時間取得関数に加えて、sleep() 関数や gettimeofday() 関数が使えるようになりました。 これらにより簡単に詳細な時刻の取得と決められた時間のウエイトなどを制御することが可能になっています。

ここでは非常に簡単なデモとして banner コマンドと組み合わせたデジタル時計を作成してみました。 昔の BASIC の練習問題などに良く使われた内容ですが、banner コマンドと組み合わせることで簡単に作成することができます。

clocl.awk

#! /usr/local/bin/xgawk -f

@load time

BEGIN {
    banner = "/usr/bin/banner";
    clear  = "/usr/bin/clear";
    for (;;) {
        system(clear);
        now_time = strftime("%H:%M:%S");
        while ((banner " " now_time |& getline var) > 0) {
            print var;
        }
        close(banner "" now_time);
        sleep(1);    # xgawk only!
    }
}

実行結果

clock.jpg