はじめに
世の中では湯婆婆プログラムが大流行中らしい。
このビックウェーブに乗るっきゃないということで
初めてQiitaを書いてみました。
実際のコード
yubaba
set -eu #エラー時に停止するように
echo "契約書だよ。そこに名前を書きな。"
read name
echo "フン。${name}というのかい。贅沢な名だねぇ。"
random=$[RANDOM % ${#name}]
newName=${name:random:1}
echo "今からお前の名前は${newName}だ。いいかい、${newName}だよ。分かったら返事をするんだ、${newName}!!"
実行例
$ bash yubaba
> 契約書だよ。そこに名前を書きな。
> 山田太郎
> フン。山田太郎というのかい。贅沢な名だねぇ。
> 今からお前の名前は郎だ。いいかい、郎だよ。分かったら返事をするんだ、郎!!
コマンド化
ちなみに、下記のようにPATHが通ったところに置き、権限を渡せば
いつでもどこでも湯婆婆を召喚できます。
(/usr/local/bin/に置くのはあんまりいい気持ちはしませんが・・・
$ chmod a+x yubaba #権限を付与
$ cp yubaba /usr/local/bin/ #PATHが通った場所へコピー
$ yubaba
> 契約書だよ。そこに名前を書きな。
> 山田太郎
> フン。山田太郎というのかい。贅沢な名だねぇ。
> 今からお前の名前は太だ。いいかい、太だよ。分かったら返事をするんだ、太!!
クラッシュ
何も入力しないと、しっかりエラーを吐いて停止します(原作リスペクト大事
Shell scriptはデフォルトだとエラーを吐いた後も実行されてしまうので、
最初にset -eu
を指定しています。
$ bash yubaba
> 契約書だよ。そこに名前を書きな。
>
> フン。というのかい。贅沢な名だねぇ。
> yubaba: line 7: RANDOM % 0: division by 0 (error token is "0")
> yubaba: line 8: random: unbound variable
終わりに
初Qiita投稿でしたが如何だったでしょうか。
一応、Shell scriptで書かれたものが無いか確認しましたが
もし私が気づかず、丸被りしてしまってたらごめんなさい。
私としてはShell scriptも触れられて、記事にも挑戦できて良い経験になりました。
みなさんも湯婆婆・Shell scriptを楽しんでみてください!w