しらいです。

In article <ul8vf7iv6fh.fsf@pine.yorie.netside.co.jp>,
MOCHIDA Shuji  <mochid@netside.co.jp> wrote:
>持田@NETside です。

>なんかが使えないこと。それと、端末の扱いがちょっと違うような気がします。

 bash は端末制御が雑ですね。longjmp(3) で逃げてる実装が多い
ので、それだと端末設定までは戻ってくれない訳で。Linux Zaurus
で suspend から復帰出来ないとゆーのも有名な話だし。
 bash の設定っていうのは、最初に設計ありきではなくて後付け
でわらわら機能追加していった結果なので、そういう adhoc さの
無い zsh から見ると杜撰な点がどうしても目立ってしまいます。
 まぁ歴史的経緯からどうしようもないんでしょうけど、bash の
source を一通り眺めるだけで bug が幾つも見つかるので、どっか
で一度一から設計し直すべきかも知れませんね。

# 例えば $() の中に case statement を書けないとゆー bug は、
#parser の設計を根本的なところからやり直さないと回避出来な
#い筈。


>あと bash は、.profile や .bashrc の役割分担がよくわからない。
>対話式かどうかも自力判別しないといけないみたいだし。

 .profile は login shell 用で、.bashrc はそうじゃない時用で
す。man page にもはっきりと書かれていますけど、どこが判りに
くいでしょうか?
 確かに最近だと SSH みたいなのが主流になってきて「login」と
いう概念に拘る理由が希薄になってきてはいるでしょうけど、判ら
ないことはないと思います。

 対話式かどうかは bash の内部状態で持ってますので、調べよう
とすれば判る筈ですよ。例えば $PS1 とか $- とか。
        bash-2.05$ echo /$PS1/$-/
        /\s-\v\$ /himBH/
        bash-2.05$ bash -c 'echo /$PS1/$-/'
        //hBc/
        bash-2.05$ 

# -i が interactive。-H と -m はそれぞれ history と job の
#拡張機能で interactive shell だと自動的に有効になるんで付
#いてきてます。


> 昔は、zsh や tcsh はバイナリサイズがデカかったのでそれなりに
>「お下品」と思って使ってましたが、今はどれもデカいですよねぇ。

 bash がデカいのは機能が多いからだけじゃなくて、上の adhoc
な設計というのが一因になってます。場当たり的に付足すから似た
ような関数があっちにもこっちにも散財してます。

-- 
                                               しらい たかし