ホーム DoRuby 無駄に見えて無駄じゃないalias
無駄に見えて無駄じゃないalias
 

無駄に見えて無駄じゃないalias

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、幾田です。

今回は「無駄に見えて無駄じゃないalias」と題して、私が趣味で登録しているbashのaliasをご紹介します。
やってることは無駄ですが、シェルスクリプトのお勉強になるので無駄じゃありません。

1. :q

私はテキストエディタにvimを使ってます。
間違えてvimの終了コマンド:qをbashで打ってしまうことがあります。

# ~/.bashrc

alias :q='echo ここvimじゃないよ:p'
q.gif

忙しい時に見るとだいぶ腹がたちます。
aliasに記号:が使えることがわかりましたね。

2. lll(小文字のL)

llのaliasを登録している人は多いのではないでしょうか。
同じ文字2文字だし、ls -lの略でllってわかりやすいですよね。

でも、勢い余ってlllと打ってしまうことがあります。
連打してしまってもある程度大丈夫なようにaliasを設定しましょう。

# ~/.bashrc

# llコマンドのaliasを設定します
alias ll='ls -l'

# ベースとなる文字列を宣言
l_length="ll"

# for文を使って10回繰り返す
for i in `seq 10`
do
  # 文字列の末尾に一つlを追加していく
  l_length=$l_length"l"

  # 文字列に対してlsのaliasを設定
  # `echo $l_length` の実行結果をaliasに渡す
  alias `echo $l_length`='ls -l'
done
ls.gif

これで最大llllllllllll連続12文字まで登録できました。
何が嬉しいのかわかりませんが、aliasに登録するコマンドに変数を使う方法がわかりました。

3. 眠い

業務中眠いなあと思ってbashに眠いと打ちます。

$ 眠い
-bash: 眠い: command not found

そんなコマンドはないので怒られます。
怒られるなら「仕事しろ」と叱咤激励してもらいたいものですね。
というか怒られるよりもこの眠さを誰かにわかってほしい。
この睡魔を同意してもらえるようにaliasを設定します。

# ~/.bashrc

# ランダムに同意の言葉を返す関数 sympathize_randomly
function sympathize_randomly () {
  # 「眠い」に返す言葉の配列 replies を宣言
  declare -a replies=(
    "私も"
    "俺も"
    "僕もです"
    "仕事しろ"
    "わかるぅ〜"
  )

  # ランダムな数字を配列の要素の個数で割った余りを計算
  random_number=$[1] $RANDOM % ${#replies[@]} 

  # 配列からランダムな要素を出力
  echo ${replies[$random_number]}
}

# sympathize_randomly 関数を使ってaliasを設定
alias 眠い='sympathize_randomly'
sleepのコピー3.gif

aliasに日本語も設定できるんですね。
関数の宣言の仕方や、配列の要素数の取得方法などいろんなことが学べました。

alias 設定時に気をつけること

aliasの設定で気をつけるべきは既に存在するコマンドを登録してしまわないことです。
また、aliasが便利だからって何でもかんでも設定していると、どれが何かわからなくなってしまうこともあるかもしれません。
破壊的なコマンドを簡単なaliasに設定するのもよくないです。

まとめ

やっていることは大変無駄でしたが、bashの知識はいつかどこかで役に立ちそうです。

それでは、今日はこの辺で。
読んでいただき、ありがとうございました。

References

References
1 $RANDOM % ${#replies[@]}
記事を共有

最近人気な記事