LinuxにSSHログインしたときにランダムでスライムが出るようにしてみた

# やったこと
･sshログイン時にスライムをランダムで出せるようになりました｡
･/etc/motdは修正せず､シェルの設定ファイル(.zshrc)の修正で出せるようにしてみました｡
･メッセージ欄を表示出来るようにしました｡(2018/9/29追記)

# やるに至った背景
以下記事を見てスライムを出せることを知り､ランダムに表示することも可能か試してみたくなりました｡
 (知ったときはほんとビックリしました...スライム､感動です...)
 https://qiita.com/tu-kun/items/d38452161bfb9da54bcd

# 試した環境
･Ubuntu 18.04
･zsh 5.4.2-3ubuntu3.1

# 手順
### 1. まずシェルスクリプト等を配置するディレクトリを作成します｡
```sh:
mkdir -p ~/DQ/text
※この後､DQ直下にシェルスクリプトを､text直下にテキストファイルを配置します
```

### 2. 事前にスライムのテキストファイルを取得します｡
※他にDQ2の王子･王女もありましたが今回はスライムだけにしました｡元データは[こちら](https://github.com/dot-motd/dragon-quest)｡

```sh:
･スライム
curl -s https://gist.githubusercontent.com/makocchi-git/9775443/raw/02e67ad144bd9ab5b71472e46e9a553d49f413d4/slime.txt > ~/DQ/text/slime.txt

･ベス
curl -s https://gist.githubusercontent.com/makocchi-git/9775443/raw/0b824da8a3ecb0fd96b1e646061dc8493d4c36b4/slime-beth.txt > ~/DQ/text/slime-beth.txt

･メタル
curl -s https://gist.githubusercontent.com/makocchi-git/9775443/raw/6747aa4a65e4293201289899931fe04472c5cfcf/metal-slime.txt > ~/DQ/text/metal-slime.txt

･バブル
curl -s https://gist.githubusercontent.com/makocchi-git/9775443/raw/74e7161b1455d300e2c6c2bd84c106baf1a89443/bubble-slime.txt > ~/DQ/text/bubble-slime.txt

･はぐれ
curl -s https://gist.githubusercontent.com/makocchi-git/9775443/raw/67ee6bdde75c987cc9ef91fce35150685d8163b9/hagure-metal.txt > ~/DQ/text/hagure-metal.txt

･スライム､ベス､メタル3種盛り
curl -s https://gist.githubusercontent.com/makocchi-git/9775443/raw/746887fbc6e1a7c6b120af0abcfe58701e8b4550/slime-allstar.txt  > ~/DQ/text/slime-allstar.txt
```


### 3. 表示するためのシェルスクリプト(slime_header)を作成します｡
※なおスライムの出現率は適当です｡ (スライム=40%､ベス=25%､バブル=20%､メタル=10%､はぐれ=4%､3種盛り=1%)
※2018/9/29 メッセージ欄を表示出来るようにしました(メッセージ欄が不要な場合は､4行目にあるPROMPT=ONをOFFにしてください)

```sh:
vim ~/DQ/slime_header.sh
```

```sh:~/DQ/slime_header.sh
#!/bin/bash

#プロンプトを非表示にする際はOFFにしてください
PROMPT=ON
#PROMPT=OFF

#スライムテキストデータの配置場所
TEXTDIR=~/DQ/text

#ランダムで値を取得(0〜99の範囲)
NUM=$(($RANDOM % 100))


#メッセージ欄表示関数 (PROMPT=ONの場合のみ実施)
function prompt () {
  #第一引数: モンスター名
  #第二引数: 余白(タブ)

  echo -e "\U250F\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2513"

  #スライムオールスターのみ3桁表示
  if [ $1 != "allstar" ] ; then
    echo -e "\U2503  ${1}が あらわれた! ${2}\U2503"
  else
    echo -e "\U2503  スライムが あらわれた! \t\t\t\U2503"
    echo -e "\U2503  スライムベスが あらわれた! \t\t\t\U2503"
    echo -e "\U2503  メタルスライムが あらわれた! \t\t\U2503"
  fi

  echo -e "\U2517\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U2501\U251B"
}


#スライム 40%の確率 (RANGE: 0-39)
if [ $NUM -lt 40 ]; then
  sed -e 's/^/\t/g' $TEXTDIR/slime.txt

  [ $PROMPT = "ON" ] &&  prompt "スライム" "\t\t\t" 

#ベス 25%の確率 (RANGE: 40-64)
elif [ $NUM -lt 65 ]; then      
  sed -e 's/^/\t/g' $TEXTDIR/slime-beth.txt

  [ $PROMPT = "ON" ] &&  prompt "スライムベス" "\t\t\t" 

#バブル 20%の確率 (RANGE: 65-84)
elif [ $NUM -lt 85 ]; then
  cat $TEXTDIR/bubble-slime.txt

  [ $PROMPT = "ON" ] &&  prompt "バブルスライム" "\t\t" 

#メタル 10%の確率 (RANGE: 85-94)
elif [ $NUM -lt 95 ]; then
  sed -e 's/^/\t/g' $TEXTDIR/metal-slime.txt

  [ $PROMPT = "ON" ] &&  prompt "メタルスライム" "\t\t" 

#はぐれ 4%の確率 (RANGE: 95-98)
elif [ $NUM -lt 99 ]; then
  cat $TEXTDIR/hagure-metal.txt

  [ $PROMPT = "ON" ] &&  prompt "はぐれメタル" "\t\t\t" 

#3種盛り 1%の確率 (RANGE: 99)
elif [ $NUM -eq 99 ]; then
  cat $TEXTDIR/slime-allstar.txt

  [ $PROMPT = "ON" ] &&  prompt "allstar"

fi
```

### 4.シェルスクリプト(slime_header)に実行権限を付与します｡

```sh:
chmod 744 ~/DQ/slime_header.sh
```


###  5. 最後にログインシェル(.zshrc)に以下を追記します｡
※.bashの場合は.bashrcに追記すればいけると思います

```sh:
echo "~/DQ/slime_header.sh" >> ~/.zshrc
```

### 6. その後､別ターミナルでsshログインするとスライムが表示されます｡
※どのスライムが出るかはログイン時のお楽しみ!!
※2018/9/29 メッセージ欄を表示出来るようにしました(メッセージ欄が不要な場合は､slime_header.shの4行目にあるPROMPT=ONをOFFにしてください)
![slime.jpg](https://qiita-image-store.s3.amazonaws.com/0/296159/9f8fc72d-9611-195c-20ee-da1c832f4742.jpeg)




### 以上です､お疲れ様でした!!