シェルスクリプトでスプラトゥーンのブキを発明する
はじめに
自慢じゃないですが、開発4年やっててシェルスクリプトは全然初心者です
(cdでディレクトリ移動して、コマンド叩いてツールを実行する程度にしかターミナルを使わない)
先ほどこちらの記事を読んで、死ぬほど笑いました
「こういう面白いことをしながらシェルスクリプトにも馴染めるかな?」と思い
ずっとハマっているスプラトゥーンを絡めてふざけよう、というのが趣旨です。
できたもの
$ ( \ shuf -e \ ボールド わかば もみじ おちば シャープ プロ スプラ .52 N- プライム .96 ジェット \ ホット ロング ラピッド R ノヴァ クラッシュ L3 H3 ボトル カーボン ヴァリアブル ダイナモ パーマネント \ リッター ソイ 14式 バケット スクリュー オーバー エクス バレル ハイド クーゲル ノー スパ デュアル ケルビン クアッド \ パラ キャンピング スパイ \ | awk 'NR==1'; \ \ shuf -e \ マーカー シューター モデラー ガロン ZAP スイーパー ブラスター リールガン ガイザー \ ローラー パブロ ホクサイ チャージャー スコープ チューバー スクイックリン 竹筒銃 \ スロッシャー ヒッセン フロッシャー プロッシャー スピナー ラント シュライバー チラス \ マニューバー ッタリー 525 ホッパー シェルター ガジェット \ | awk 'NR==1'; \ \ shuf -e \ ネオ 7 MG RG PG コラボ ベッチュー デコ 85 89 83 カスタム ネクロ エリート D チェリー \ フォイル テスラ ・ヒュー 4K α β γ ・甲 ・乙 ・丙 ソーダ リミックス 47 79 クリア ブラック ホワイト ソレーラ カーモ \ | awk 'NR==1'; \ ) \ | tr -d '\n' \ \ | cowsay
長ぇ!!!
...ブキ名は Splatoon2 - スプラトゥーン2 攻略&検証 Wiki 様を参考に手打ちしました。
それぞれのブキ名を適当に3ブロックに分けて、
適当に組み合わせてからウシに喋らせています。
何度か実行してみる
_______________________________ < スクリューローラー89 > ------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
キル性能に特化してそう
___________________________________ < ダイナモヒッセンネクロ > ----------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
攻撃範囲やばそう
___________________________________ < デュアルスコープコラボ > ----------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
まさかのチャージャー二刀流
何が起きているのか
shuf -e
半角スペースで区切って定義したリストをシャッフルしてくれますawk 'NR==1'
指定ファイルのNR行目(ここでは1行目)だけ取得してくれますtr -d '\n'
改行を削除してくれますcowsay
文字を渡せばウシが喋ってくれます
これらをパイプ("|"
)でつなげることで、
「文字列リストをシャッフルして抽出、最後に改行を削除して牛に喋らせる」
というコマンドになってます。
感想
さっきまで
「パイプでコマンド繋げられるらしいけど、繋げるってどういうこと?」
って状態だったやつが、
複数コマンドを組み合わせてふざけられる程度にはなりました!
まだまだ理解浅いですがね…
できれば
最初に挙げた記事を読んでいると、
文章を解析?して新しい文章を生成したりしているようでした…
ブキチのブキ説明を学習させて、適当な説明文もでっちあげられたら楽しそう!