ログイン直後にscreenを自動起動させる

最近の開発環境といえばもっぱらzsh+screenでTeraTermからのユーザログインな環境を使っているのですが、ログイン直後に


% screen
とか打つのが面倒だったりするので、screenの自動起動できないかなぁと。どうせだったら起動直後に即screen実行させてやれなことを考えて見ました。

ユーザログインなので、ホームディレクトリ上の.zshrc(他のシェル使っている人はbash_profileや.login等)にscreenコマンドを記述してあげればよいのですが、そのままscreenとしてしまうと見事無限ループになってしまうので注意が必要。

ログイン直後一度のみscreenを実施できればよいわけで、Linuxではシェルの深さを知る便利な環境変数があります。それが$SHLVL


% echo $SHLVL
とかするとシェルの深さを表示してくれます。
ログイン直後の$SHLVLは1でscreenコマンド実施後は$SHLVLの値が2になるので、シェルレベル1の時にのみscreenコマンド叩くようzshrcに以下を記述。


if [ $SHLVL = 1 ];then
screen
fi

で、screenが自動起動します。

たったワンライナーのコマンド自動化なのに予想以上に快適に!!ktkr(・∀・)

他にもやり方あると思いますがお好きな人はどうぞ。