zsh
ログインシェルが tcsh (csh) な環境で zsh を使いたくて exec zsh -l とやっていたのだけど,w コマンドを実行したときに他人の -tcsh (-csh) と並んで zsh -l と表示されてしまうのが納得いかず,解決法を探る。 当然ログインシェルを変更するのが確実だが,今回は一般ユーザの権限だと変更できない環境 (Solaris)。
調べてみると,zsh には argv[0] を定義する ARGV0 という変数があった *1。 exec zsh -l ではなく,ARGV0=-zsh exec zsh で良いことになる。
さらに調べると,zsh には - (マイナス) というコマンドがあった。 実行されるコマンドの頭に - を付けたものを argv[0] に入れてくれるらしい。 ARGV0=-zsh exec zsh ではなく,exec - zsh で良いことになる。
ただ,どちらも zsh にしかない機能なので,他のシェルから使うには exec zsh -f -c "exec - zsh" のようになるだろう。 というわけで最終的に .login に書いたのは次の一行。
which zsh > /dev/null && exec zsh -f -c "exec - zsh"
場合によっては行頭にさらに tty -s && が必要かも。
夜
「ログイン」は「接続開始」 国語研が外来語言い換え案
「マクロ」は「巨視的」? (←たぶん考えてるマクロとは別物)
「グローバル変数」は「地球規模変数」?? (←たぶん大域変数)
つ,付いていけねぇ……。
夜
つーことで男 7 人で鍋。 ウマー。
終電で帰る。 大雨にやられた。
argv[0] 変更
zsh にしかない機能と書いてしまったが,bash だと exec に -a ってオプションがあるとのこと。 bash は 1.x 系しか調べなかったのが盲点だった。 exec でない通常のコマンド実行時に指定できないのか気になるところ。 サブシェルは別として。
で,ログインシェルが bash 2.x な環境で私の目的を達成するには,シンプルに exec -a -zsh zsh で良いことになる。 もっとも,そういう環境って大抵 Linux だと思うので,一般ユーザの権限でも使える chsh コマンドでログインシェルを直接変更するのが手っ取り早いわけだけど。
さらにシンプルに exec -l zsh でもいけるらしい。 もっとも,(以下同文)。
ツッコミ
passwd -e でかわりませんか?
files repository (/etc/passwd, /etc/shadow) の環境なので一般ユーザの権限だと変えられません。
-e Changes the login shell. For the files repository, this only works for the super-user. Normal users may change the ldap, nis, or nisplus repositories.
くもり止め
phone au 料金クリニック
冬到来,東京で木枯らし 1 号 昨年より 15 日遅く
ツッコミ
from ryosuke さん。
http://www.taihokogyo.co.jp/j_site/2nddiv/page/megane.html
くもり止め兼メガネクリーナって今でもあるんですね。 安心しました。
メガネ屋のオバさん許すまじ。
業務連絡
朝
昼
夜
時間が時間だし,場所が場所なので,いつもの飲み屋でいつものメンツで飲む。 先週末の店員に「ホントに男 8 人で鍋やったの? 寒ッ」とか言われる。 余計なお世話だ。
ふー,あすも研修かー。
朝
電車に乗ったら速攻でメガネがくもった。 くもり止めを買ったのに塗ってなかった YO!
出社直後,きのう・おとといのメールを受信する。 160 通。 テキトーに斜め読みしてたら「ちゃんと目を通しといてね」って言われた。