LoginSignup
11
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-29

やったこと

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

やるに至った背景

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

試した環境

・Ubuntu 18.04
・zsh 5.4.2-3ubuntu3.1

手順

1. まずシェルスクリプト等を配置するディレクトリを作成します。

mkdir -p ~/DQ/text
※この後、DQ直下にシェルスクリプトを、text直下にテキストファイルを配置します

2. 事前にスライムのテキストファイルを取得します。

※他にDQ2の王子・王女もありましたが今回はスライムだけにしました。元データはこちら

・スライム
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にしてください)

vim ~/DQ/slime_header.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)に実行権限を付与します。

chmod 744 ~/DQ/slime_header.sh

5. 最後にログインシェル(.zshrc)に以下を追記します。

※.bashの場合は.bashrcに追記すればいけると思います

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

6. その後、別ターミナルでsshログインするとスライムが表示されます。

※どのスライムが出るかはログイン時のお楽しみ!!
※2018/9/29 メッセージ欄を表示出来るようにしました(メッセージ欄が不要な場合は、slime_header.shの4行目にあるPROMPT=ONをOFFにしてください)
slime.jpg

以上です、お疲れ様でした!!

11
4
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
11
4