cowsay の COW をランダムに

cowsay では -f オプションで色々な COW を選択できます,

% cowsay -f suse The openSUSE is not OpenSUSE
 ______________________________
< The openSUSE is not OpenSUSE >
 ------------------------------
  \
   \____
  /@    ~-.
  \/ __ .- |
   // //  @
% cowsay -f duck ga~~~
 _______
< ga~~~ >
 -------
 \
  \
   \ >()_
      (__)__ _

この COW のリストは -l オプションで確認できます.

% cowsay -l
Cow files in /usr/share/cowsay/cows:
apt beavis.zen bong bud-frogs bunny calvin cheese cock cower daemon default
dragon dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters gnu head-in hellokitty kiss kitty koala kosh luke-koala
mech-and-cow meow milk moofasa moose mutilated pony pony-smaller ren sheep
skeleton snowman sodomized-sheep stegosaurus stimpy suse three-eyes turkey
turtle tux unipony unipony-smaller vader vader-koala www

これをランダムに選択できないかと思ったのですがオプションに見当たりません.
ということでこんな感じで script を用意して,

#!/bin/bash 
 
COWS=( `cowsay -l | grep -v ^Cow | cut -f1-` )
cowsay -f ${COWS[$((RANDOM%${#COWS[@]}))]} $@

実行

% cowsay-random.bash hello!
 ________
< hello! >
 --------
  \
   \          .
       ___   //
     {~._.~}//
      ( Y )K/
     ()~*~()
     (_)-(_)
     Luke
     Skywalker
     koala
% cowsay-random.bash hello!
 ________
< hello! >
 --------
         \
          \
            ^__^
    _______/(oo)
/\/(       /(__)
   | W----|| |~|
   ||     || |~|  ~~
             |~|  ~
             |_| o
             |#|/
            _+#+_

fortune と繋いでみたり

% fortune /usr/share/games/fortunes | cowsay-random.bash -n
 _______________________________________________________________
/ Putt's Law:                                                   \
|         Technology is dominated by two types of people:       |
|                 Those who understand what they do not manage. |
\                 Those who manage what they do not understand. /
 ---------------------------------------------------------------
                       \                    ^    /^
                        \                  / \  // \
                         \   |\___/|      /   \//  .\
                          \  /O  O  \__  /    //  | \ \           *----*
                            /     /  \/_/    //   |  \  \          \   |
                            @___@`    \/_   //    |   \   \         \/\ \
                           0/0/|       \/_ //     |    \    \         \  \
                       0/0/0/0/|        \///      |     \     \       |  |
                    0/0/0/0/0/_|_ /   (  //       |      \     _\     |  /
                 0/0/0/0/0/0/`/,_ _ _/  ) ; -.    |    _ _\.-~       /   /
                             ,-}        _      *-.|.-~-.           .~    ~
            \     \__/        `/\      /                 ~-. _ .-~      /
             \____(oo)           *.   }            {                   /
             (    (--)          .----~-.\        \-`                 .~
             //__\\  \__ Ack!   ///.----..<        \             _ -~
            //    \\               ///-._ _ _ _ _ _ _{^ - - - - ~

login 時などに表示すると楽しいかもしれません.

One thought to “cowsay の COW をランダムに”

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.