cowsayを知ったのは、2025年1月1日のポストがきっかけでした。
cowsayは、入力した文章をアスキーアートのキャラに吹き出してもらうだけのアプリで、オプション"-f"でキャラ名を指定すると、出したいキャラが出てきます。lolcatでもっと楽しくなります。
なので、
実行毎にキャラをランダムで出せないかなと思い、シェルスクリプトを作ってみました。(ほとんど作ってませんが)
$randomの使い方がよくわからず、もっと簡単にできないかなと思い、randomを検索すると一緒にでてくる、shufコマンドを使うことにしました。
sudo apt install cowsay && apt install lolcat
#!/bin/bash
cow=$(cowsay -l | tail -n +2 | tr -s '[:space:]' '\n' | shuf -n 1 )
# "$(cowsay -l | tail -n +2 | tr -s '[:space:]' '\n'"は、下記のサイトから入手
cowsay -f $cow "$cow" | lolcat -a
1. キャラリストを入手
cowsay -l
実行結果
Cow files in /usr/share/cowsay/cows: 1行目
apt bud-frogs bunny calvin cheese cock cower daemon default dragon
dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep fox
ghostbusters gnu hellokitty kangaroo kiss koala kosh luke-koala
mech-and-cow milk moofasa moose pony pony-smaller ren sheep skeleton
snowman stegosaurus stimpy suse three-eyes turkey turtle tux unipony
unipony-smaller vader vader-koala www
2. 1行目を削除
tail -n +2
#(-1+2)で1行目らしい
実行結果
apt bud-frogs bunny calvin cheese cock cower daemon default dragon
dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep fox
ghostbusters gnu hellokitty kangaroo kiss koala kosh luke-koala
mech-and-cow milk moofasa moose pony pony-smaller ren sheep skeleton
snowman stegosaurus stimpy suse three-eyes turkey turtle tux unipony
unipony-smaller vader vader-koala www
3.スペースを指定して、改行する
tr -s '[:space:]' '\n'
実行結果
apt
bud-frogs
bunny
calvin
cheese
cock
cower
daemon
etc..
4. 改行したリストをシャッフルして、1行目を入手
shuf -n 1
5. cowsayにキャラ名を渡して、lolcatで色付けする
cowsay -f $cow "$cow" | lolcat -a
実行結果
参考にしたサイト