watchコマンドでsysvbanner時計

while :の無限ループを利用して、banner時計が作れますが、

takk@deb8:~$ while :;do clear;banner `date +%T`;sleep 1;done
 #####    ###      #    #       #######    #    #        #####
#     #  #   #    # #   #    #  #         # #   #    #  #     #
      # # #   #    #    #    #  #          #    #    #        #
 #####  #  #  #         #######  #####          #######  #####
#       #   # #    #         #        #    #         #        #
#        #   #    # #        #  #     #   # #        #  #     #
#######   ###      #         #   #####     #         #   #####


このとおりコマンドが長いです。

watchコマンドで、再表示する間隔を指定して、コマンドを実行できます。
1秒毎にdateコマンドを実行させてみます。

takk@deb8:~$ watch -n 1 date +%T


-nで時間を変更できます。

次はsysvbannerで時計を表示してみましょう。

watch -n 1 banner `date +%T`


静止画なので、一見うまく行ってるように見えますが、上の時刻はずっと止まったままです。
watchコマンドでコマンドを発行するときは、クォートしなければなりません。

watch -d -n 1 'banner `date +%T`'

これでsysvbannerの時計も時を刻むようになります。
動きがわかるように、-dオプションもつけてみました。

-dオプションは、前回との差分表示をハイライトできます。
上の画像から、前回(1秒前)が53分20秒で、今回が53分21秒とわかります。

コメント

タイトルとURLをコピーしました