この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
こんにちは、幾田です。
今回は「無駄に見えて無駄じゃないalias」と題して、私が趣味で登録しているbashのaliasをご紹介します。
やってることは無駄ですが、シェルスクリプトのお勉強になるので無駄じゃありません。
1. :q
私はテキストエディタにvimを使ってます。
間違えてvimの終了コマンド:q
をbashで打ってしまうことがあります。
# ~/.bashrc
alias :q='echo ここvimじゃないよ:p'
忙しい時に見るとだいぶ腹がたちます。
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
これで最大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'
aliasに日本語も設定できるんですね。
関数の宣言の仕方や、配列の要素数の取得方法などいろんなことが学べました。
alias 設定時に気をつけること
aliasの設定で気をつけるべきは既に存在するコマンドを登録してしまわないことです。
また、aliasが便利だからって何でもかんでも設定していると、どれが何かわからなくなってしまうこともあるかもしれません。
破壊的なコマンドを簡単なaliasに設定するのもよくないです。
まとめ
やっていることは大変無駄でしたが、bashの知識はいつかどこかで役に立ちそうです。
それでは、今日はこの辺で。
読んでいただき、ありがとうございました。
References
↑1 | $RANDOM % ${#replies[@]} |
---|