UNIX/Linuxの部屋 Cシェル変数:prompt

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




Cシェル変数 prompt プロンプトを設定 このエントリーをはてなブックマークに追加

プロンプト(コマンド入力待ちのときに表示する文字列)を設定する。
% set prompt="% "
とすると、プロンプトは「% 」となる(これはデフォルト)。
% set prompt="`hostname -s`-\>$USER: "
とすると、「ホスト名->ユーザ名: 」になる。

また、\! はヒストリ番号に置換される。
% set prompt="`hostname -s`-\>$USER:{\!} "
とすると、\! の部分はひとつコマンドを実行するごとに 1ずつ値が増えていく。

バッククォートで囲った部分はプロンプト表示のたびに毎回実行されるわけではなく、set の時点で一度だけ実行される。よって、毎回カレントディレクトリを表示させるつもりで
% set prompt=`pwd`
としてもディレクトリ表示は変化しない。この場合、%/ %~ などの特殊変数を使うとよい (tcsh のみ)。

以下は tcsh のみがサポートする特殊文字列。
%/ … カレントディレクトリ
%~ … カレントディレクトリ。ただし、ホームディレクトリは ~ として表示される。
% cd ~/bin
% set prompt="%/:"
/home/username/bin:
% set prompt="%~:"
~/bin:
%c … カレントディレクトリの最後のディレクトリ名。その後に数字を付けると、最後のn個分のディレクトリ名となる。
% cd /usr/X11R6/lib/X11
% set prompt="%c: "
X11:
% set prompt="%c3:" (後ろから数えて3つのディレクトリを表示)
X11R6/lib/X11:
%S … 反転表示開始(%sで終了)
%B … 太字(bold)表示開始(%bで終了)
%U … 下線(アンダーライン)表示開始(%uで終了)
% set prompt="%Sabc%s%Bdef%b%Ughi%u:"
abc<b>def</b><u>ghi</u>:
%Y … 西暦。4桁表示
%y … 西暦。2桁表示
%w … 月。Jun〜Dec表示
%W … 月。1〜12表示
%d … 曜日。Sun〜Sat表示
%D … 日。1〜31日
%t … 現在時刻。何時何分単位。12時間表示。末尾にam/pmが付く。
%T … 現在時刻。何時何分単位。24時間表示。
%p … 現在時刻。何時何分何秒単位。12時間表示。末尾にam/pmが付く。
%P … 現在時刻。何時何分何秒単位。24時間表示。
% set prompt="%Y-%W-%D(%d) %P %t: "
1999-06-26(Sat) 13:04:37 1:04pm: