「cowsay Happy New Year!」をやってみた


新年あけましておめでとうございます。
今年の干支は丑ですね。
丑といえばUNIXコマンドにcowsayがあります。
これは牛に吹き出しで何か喋らせるアスキーアートを作るコマンドです。
例えばこんな感じの実行結果が出力されます。

 _____________
< Hello World! >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |

というわけで今回はこのcowsayコマンドであれこれ遊んでみようと思います。

インストール

UNIXコマンドなのでLinux、Macでそれぞれ使うことができます。

  • Mac
brew install cowsay
  • Linux
sudo apt-get install cowsay

使い方

先程のHello Worldを出力するときには以下のコマンドを実行します。

cowsay Hello World!

そして、コマンドの実行結果をcowsayで出力するときにはコマンドとコマンドの間に|を入れるとできます。

echo "Hello World!" | cowsay

cowsay Happy New Year!

さて、本題であるcowsay Happy New Year!をやってみます。

$ cowsay Happy New Year!
 _________________
< Happy New Year! >
 -----------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

まぁそうなりますよねw。
ここからさらに日付を付け加えて年賀状みたいにしてみます。
日付はdateコマンドを使います。
そして日付を指定したフォーマットで出力させるには、以下のようにできます。

date "+%Y/%m/%d"

ダブルクオーテーションで囲んで頭に+をつけてあとは%Yのようにフォーマットを指定します。
指定するフォーマットは以下のサイトが参考になります。
https://hydrocul.github.io/wiki/commands/date.html

フォーマットさえ指定すれば、文字列の中に日付を挿入することも簡単にできます。
なので、Happy New Year! 2021/01/01のように出力したいときに以下のコマンドです。

date "+Happy New Year! %Y/%m/%d"

これで先程のcowsayコマンドを合わせると以下のコマンドになります。(Twitterの投稿用に時間フォーマットも指定してみました)

date "+Happy New Year! %Y/%m/%d %H:%M:%S" | cowsay

そして、2021年が始まった瞬間にツイートしたものができました。

まとめ

今回は丑年にちなんでcowsayコマンドを紹介しました。
UNIXコマンドにはこのようなユニークなコマンドもあるので、とても奥が深いです。
おそらくこの魅力に惹かれてUNIXコマンドにのめり込んだ方も少なくないのではないのでしょうか?