0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

cowsayをランダム(シャッフル)でキャラを表示

Last updated at Posted at 2025-01-19

cowsayを知ったのは、2025年1月1日のポストがきっかけでした。

x_cowsay1.png

cowsayは、入力した文章をアスキーアートのキャラに吹き出してもらうだけのアプリで、オプション"-f"でキャラ名を指定すると、出したいキャラが出てきます。lolcatでもっと楽しくなります。

なので、
実行毎にキャラをランダムで出せないかなと思い、シェルスクリプトを作ってみました。(ほとんど作ってませんが)

$randomの使い方がよくわからず、もっと簡単にできないかなと思い、randomを検索すると一緒にでてくる、shufコマンドを使うことにしました。

  • まずは、cowsayとlolcatをインストール

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

実行結果

cowsay1.png
cowsay2.png

参考にしたサイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?