Subject: How do I get the current directory into my prompt? Date: Thu Mar 18 17:16:55 EST 1993
alias setprompt 'set prompt="${cwd}% "' setprompt # to set the initial prompt alias cd 'chdir ¥!* && setprompt'もし pushd と popd を使うなら、これも必要です。
alias pushd 'pushd ¥!* && setprompt' alias popd 'popd ¥!* && setprompt'$cwd 変数を保存しておかない C シェルもあります。代わりに 'pwd' を 使えば良いのです。
もしあなたがプロンプトにカレントディレクトリの最後の要素だけが欲 しいのなら(例えば "/usr/spool/mail%" の代わりに "mail%")、
alias setprompt 'set prompt="$cwd:t% "'古い C シェルの中には、&& と || の意味を逆にとるものがあります。 これをやってみて下さい。
false && echo bugもし "bug" と表示されたら、&& と || を交換する必要があります。 (そしてもっと良いバージョンの csh を手に入れて下さい)
xcd() { cd $* ; PS1="`pwd` $ "; }古いバージョンの Bourn Shell を使っているのなら、複雑になりますが 不可能ではありません。方法を一つ示します。.profile ファイルにこれ を付け足して下さい。
LOGIN_SHELL=$$ export LOGIN_SHELL CMDFILE=/tmp/cd.$$ export CMDFILE # 16 is SIGURG, pick a signal that's not likely to be used PROMPTSIG=16 export PROMPTSIG trap '. $CMDFILE' $PROMPTSIGそれからこの実行可能スクリプト(インデントはしないように)を PATH の どこかに置いて下さい。それを "xcd" と呼ぶことにします。
: xcd directory - change directory and set prompt : by signalling the login shell to read a command file cat >${CMDFILE?"not set"} <<EOF cd $1 PS1="¥`pwd¥`$ " EOF kill -${PROMPTSIG?"not set"} ${LOGIN_SHELL?"not set"}これで、"xcd /some/dir" でディレクトリを移れます。
PS1='$PWD $ 'ディレクトリの最後の部分だけが欲しければ、これを使います。
PS1='${PWD##*/} $ '
set prompt='%‾ '
PS1='¥w $ '又は
PS1='¥W $ '