|
> ディレクトリの移動によって「今現在どこに居るか」というのを表示させたいのです。 とりあえず、こんなんでどうでしょうか? テストは tcsh でやったので、 断定的なことは言えませんが、古い csh と互換性のある構文を使っています。 alias sp 'set prompt=`whoami`@`hostname -s`\[`pwd`\] ' alias cd "cd \!* ; dirs -l ; sp" alias pushd "pushd \!* ; sp" alias popd "popd ; sp" ポイントは set prompt の alias をシングルクォートで囲むところですかね。 あと、cd, pushd, popd のごとに prompt の set をするということですね。 4.1-RELEASE 以降だと /bin/csh は tcsh なので、もっと簡単に出来ます。 たしか %/ とかいうのを使えば、良いだけだったと思います。 |
|
rosegardenさんへ> >ポイントは set prompt の alias をシングルクォートで囲むところですかね。 >あと、cd, pushd, popd のごとに prompt の set をするということですね。 なるほど。cdコマンドを使うたびにset promptするんですね。 ためしてみたところ、確かに出来ました。 >たしか %/ とかいうのを使えば、良いだけだったと思います。 これは知りませんでした。tcshの利用が可能なマシンがあるので 試してみましたが、ホントですね。うーん、こっちの方が簡単だなぁ。 でもメインのマシンはシェルの変更を許可してくれないので、 alias方式で行きます。どうもありがとうございました。 |
|
> でもメインのマシンはシェルの変更を許可してくれないので 僕は sh・csh のような非人間的なシェルを使うのは耐えられない ので、そういうときは勝手に tcsh を入れて、~/.cshrc に if ( ${?tcsh} == 0 ) then exec /usr/local/bin/tcsh endif などと書いてます。 前にちょっとはまったことを書いておきますと、これをするなら ~/.cshrc に setenv TERM vt100 などと書いてはいけません。 普通にログインするときはいいのですが、もし端末がない場合 (rsh を使う場合など) は、tcsh が端末があると勘違いして 入力待ちになってしまい、rsh が効かなくなるからです。 Solaris などで、デフォルトだと TERM=kterm になってしまい、 さらに /etc/termcap に kterm のエントリがないため、vi や emacs を実行すると文句を言われるので仕方なく setenv TERM vt100 と書いている人もいると思いますが、それをするなら if ( ${?TERM} ) then setenv TERM vt100 endif と書けばいいです。これなら rsh のときは TERM が設定されません。 |