Qiitaのタグに lang って入れただけで lang-en って勝手に補完されて消しても復活するのでとてもうざったいことに気づきました。
さて、Linuxの表示メッセージを普段は日本語にしてるけど何か問題が起きた時はやっぱり英語のほうが良いので切り替えたい時があるのですが環境変数のLANGに設定するための値をいつも忘れてしまうのでシェルスクリプトを書いて解決しようと思いました。
でもシェルスクリプト chlang.sh
を書いて実行すると子のプロセスにはシェル変数や環境変数は親のプロセスを書き換えることができないのでダメでした。
でもシェル関数なら同じプロセスで実行されるようで、そっちのほうに書いときました。
(さらっと書きましたが何で反映されないかを調べるのに結構時間くってしまっています。)
~/.bashrc
chlang ()
{
if [ $1 == "en" ]; then
export LANG="en_US.UTF-8"
fi
if [ $1 == "jp" ]; then
export LANG="ja_JP.UTF-8"
fi
}
これで $ chlang en
で英語表示になって $ chlang jp
で日本語表示に戻すことができます。
参考
BASH script to set environment variables not working - Ask Ubuntu
http://askubuntu.com/questions/53177/bash-script-to-set-environment-variables-not-working