¥H¤U§ÚÌ´£¥\¤@¨Ç½d¨Òµ¹±`¨£ªº©R¥O¸Ñ;¹¨Ï¥Î.
§ÚÌ¥ý±q zsh ¶}©l,
¥L¥i¥H´£¨Ñ³\¦hÆF¥©ªº¾÷¨î¨Ï±o§Ú̫ܮe©ö¦a§¹¦¨§ÚÌ©Ònªº¤u§@.
µM«á§Ú̦A¶i®i¨ìÃø«×¸û°ªªº½d¨Ò.
¦b©Ò¦³ªº½d¨Ò¤¤§Ú̳£´ú¸Õ¤F $TERM Àô¹ÒÅܼÆ.
¥H½T©w§ÚÌ¥u»Ý§â³oÓ·¸¦ì¸ê°T°e¨ì xterm. §Ú̹ï
$TERM=xterm* °µ´ú¸Õ; ¸U¥Î¦r¤¸¬O¦]¬°¨Ç³\ªº®t²§©Ê
(¤ñ¦p rxvt) ·|³]©w $TERM=xterm-color.
§ÚÌn¹ï C ©R¥O¸Ñ;¹ (C Shell) ±Ú¨t§@¯S§Oªºµù¸Ñ, ¤ñ¦p
tcsh ¤Î csh.
¦b C ©R¥O¸Ñ;¹, ¨Ï¥Î¨ì¥¼©w¸qªºÅܼƴNºâ¬OP©R©Êªº¿ù»~.
¦]¦¹, ¦b´ú¸ÕÅÜ¼Æ $TERM ¤§«e,
¥ý½T©w¨ä¬O§_¦s¦b§_«h·|¨Ï¦b«D¥æ½Í¼Ò¦¡¤U¤u§@ªº©R¥O¸Ñ;¹°±Â\.
n¹F¨ì³oӥتº§A¥²¶·§â³¡¥÷ªF¦è¥Î¤U±³oºØ¼Ë¦¡¥]°_¨Ó:
if ($?TERM) then
...
endif
(§Ú̬O¤£¥D±i¥Î C ©R¥O¸Ñ;¹ ªº²z¥Ñ¤§¤@. °Ñ¦Ò
Csh Programming Considered Harmful ¦³«Ü¦h¦³¥Îªº°Q½×¤å³¹).
¥H¤Uªº½d¨Ò¥i¥H³Q¥Î¨Ó´¡¤J¨ì¦X¾Aªº©R¥O¸Ñ;¹ªºªì©l±Ò°ÊÀÉ;
§Y ¨ºÓ¦b¥æ½Í¦¡©R¥O¸Ñ;¹±Ò°Ê®É·|¥hŪªº¨ºÓÀÉ.
¦b¤j³¡¥÷ªº±¡ªp¥¦³QºÙ¬°
.©R¥O¸Ñ;¹¦Wrc (¦p .zshrc, .tcshrc, µ¥).
zsh ´£¨Ñ³¡¥÷¥\¯à»P©µ¦ù¥\¯à, ¦Ó§Ú̱N¥Î¨ì:
precmd () ¤@Ó¦b´£¥Ü©R¥O«e¥²°õ¦æªº¥\¯à§t¦¡
chpwd () ¤@Ó¦b¥Ø¿ý¦³©ÒÅܤƮɷ|°õ¦æªº¥\¯à§t¦¡
\e ·¸¦ì¦r¤¸ (ESC)
\a bell ªº·¸¦ì¦r¤¸ (BEL)
%n ³Q¸ÑÄÀ¬° $USERNAME
%m ³Q¸ÑÄÀ¬°¥D¾÷¦WºÙ¦b²Ä¤@Ó '.' ¤§«eªº³¡¥÷
%~ ³Q¸ÑÄÀ¬°¥Ø¿ý, ¥H '~' ¨ú¥N $HOME
§ó¦hªº©µ¦ù¥\¯à: °Ñ¦Ò zshmisc ¨Ï¥Î¤â¥U.
¦]¦¹, ¥H¤U±N³]©w xterm ªº¥DÃD¬°
"username@hostname: directory":
case $TERM in
xterm*)
precmd () {print -Pn "\e]0;%n@%m: %~\a"}
;;
esac
³o¤]¥i¥H¥Î chpwd() ¨ú¥N
precmd() ¨Ó¹F¦¨. print ¤º«Øªº¤u§@¬O¸ò
echo ¤@¼Ë, ¦ý¥i¥HÅý§ÚÌ¥h¦s¨ú % ©R¥O´£¥Ü·¸¦ì¸ê°T.
tcsh ªº³¡¥÷¥\¯à§t¦¡»P©µ¦ù¥\¯à»P zsh ¬Û¦P:
precmd () ¤@Ó¦b´£¥Ü©R¥O«e¥²°õ¦æªº¥\¯à§t¦¡
cwdcmd () ¤@Ó¦b¥Ø¿ý¦³©ÒÅܤƮɷ|°õ¦æªº¥\¯à§t¦¡
%n ³Q¸ÑÄÀ¬° $USERNAME
%m ³Q¸ÑÄÀ¬°¥D¾÷¦WºÙ
%~ ³Q¸ÑÄÀ¬°¥Ø¿ý, ¥H '~' ¨ú¥N $HOME
%# ¹ï¥¿±`ªº¨Ï¥ÎªÌ¸ÑÄÀ¬° '>', ¦Ó¶W¯Å¨Ï¥ÎªÌ«h¬° '#'
%{...%} ¤Þ¤J¤@Ó¦r¦ê¬°³sÄòªº·¸¦ì§Ç¦C
¤£©¯ªº, ¨Ã¨S¦³»P zsh ªº print ¬Û¦P¥\¯àªº«ü¥O,
¯àÅý§Ú̦b¥DÃD¦r¦ê¤¤¨Ï¥Î´£¥Ü·¸¦ì¸ê°T,
¦]¦¹§Ṵ́ߤ@¯à¨Ï¥Îªº©R¥O¸Ñ;¹ÅÜ¼Æ (¦b ~/.tcshrc):
switch ($TERM)
case "xterm*":
alias precmd 'echo -n "\033]0;${HOST}:$cwd\007"'
breaksw
endsw
µM¦Ó, ³o·|¥Î¥Ø¿ý§¹¾ãªº¸ô®|¨ú¥N¨Ï¥Î ~.
§ï§â³o¨Ç¦r¦ê´¡¤JÃD¥Ü¦r¤¸:
switch ($TERM)
case "xterm*":
set prompt="%{\033]0;%n@%m:%~\007%}tcsh%# "
breaksw
default:
set prompt="tcsh%# "
breaksw
endsw
³o·|³]©w "tcsh% " ªº´£¥Ü¦r¤¸, ¦Ó xterm ªº¥DÃD¤Î¹Ï¥Ü¬°
"username@hostname: directory". nª`·N
"%{...%}" ¥²¶·Àô¶¦b·¸¦ì§Ç¦C¥~
(¥B¤£¯à³Q©ñ¦b ´£¥Üªº³Ì«á¤@¶µ: °Ñ¦Ò tcsh ¨Ï¥Î¤â¥U»¡©ú·|§ó¸Ô²Ó).
bash ¤ä´©ÅÜ¼Æ $PROMPT_COMMAND
¤º§t¤@Ó«ü¥O¦b´£¥Ü¦r¤¸¤§«e°õ¦æ. ³oÓ½d¨Ò±N³]©w¥DÃD¬°
username@hostname: directory:
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
¦b³oªº \033 ¬O¥Nªí¦r¤¸ ESC,
¦Ó \007 «h¬O BEL.
°O¦í¤Þ¸¹¦b³o¬Û·í«n: ·|³Q¸ÑÄÀªºÅܼƬO©ñ¦b
"...", ¦Ó¤£¬O '...'. ¦]¦¹
$PROMPT_COMMAND ¬O³Q³]©w¬°¤@Ó¤£³Q¸ÑÄÀªºÈ,
¦ýÅܼƦb "..." ùئpªG¦³¥Î¨ì $PROMPT_COMMAND «h·|³Q¸ÑÄÀ.
µM¦Ó, $PWD ²£¥Í§¹¾ãªº¸ô®|.
¦pªG§ÚÌn¨Ï¥Î ~ ³oºØ³t°O, «h§ÚÌn§â·¸¦ì¦r¦ê´O¤J¨ì´£¥Ü¦r¤¸,
³o·|Åý§ÚÌ¥i¥H§Q¥Î©R¥O¸Ñ;¹©Ò´£¨Ñªº©R¥O¦C©µ¦ù¥\¯à:
\u ³Q¸ÑÄÀ¬° $USERNAME
\h ³Q¸ÑÄÀ¬°¥D¾÷¦WºÙ¦b²Ä¤@Ó '.' ¤§«eªº³¡¥÷
\w ³Q¸ÑÄÀ¬°¥Ø¿ý, ¥H '~' ¨ú¥N $HOME
\$ ¹ï¥¿±`ªº¨Ï¥ÎªÌ¸ÑÄÀ¬° '>', ¦Ó¶W¯Å¨Ï¥ÎªÌ«h¬° '#'
\[...\] ´O¤J«D¦C¦L¦r¤¸·¸¦ì§Ç¦C
¦]¦¹, ¥H¤U±N²£¥Í bash$ ªº´£¥Ü¦r¤¸,
¨Ã³]©w xterm ªº¥DÃD¬° username@hostname: directory:
case $TERM in
xterm*)
PS1="\[\033]0;\u@\h: \w\007\]bash\\$ "
;;
*)
PS1="bash\\$ "
;;
esac
°O¦í \[...\] ªº¨Ï¥Î, ¦bpºâÃD¥Üªø«×®É,
±N§i¶D bash ©¿²¤±¼«D¦C¦Lªº±±¨î¦r¤¸.
§_«h¦æ½s¿è«ü¥O±N·|¦b²¾°Ê´å¼Ð®É·d¶Ã±¼.
ksh ´X¥G¤£´£¨Ñ³oºØ¤è¦¡ªº¥\¯à¨ç¦¡»P©µ¦ù¥\¯à,
¦]¦¹§ÚÌ¥²¶·´¡¤J·¸¦ì¦r¦ê¨ì´£¥Ü¦r¤¸¤¤, ¨Ï¥L¯à°ÊºA§ó·s
³oÓ½d¨Ò±N²£¥Í¥DÃD¬°
username@hostname: directory ¦Óand a prompt of ksh$ .
case $TERM in
xterm*)
HOST=`hostname`
PS1='^[]0;${USER}@${HOST}: ${PWD}^Gksh$ '
;;
*)
PS1='ksh$ '
;;
esac
¦Ó, $PWD ·|²£¥Í§¹¾ãªº¥Ø¿ý¸ô®|. §ÚÌ¥i¥H
¥Î ${...##...} ªº¤è¦¡²¾¥h $HOME/ ªº¦rº.
§Ṳ́]¥i¥H¥Î ${...%%...} ªº¤èªk¨ÓºI¥h³¡¥÷ªº hostname:
HOST=`hostname`
HOST=${HOST%%.*}
PS1='^[]0;${USER}@${HOST}: ${PWD##${HOME}/}^Gksh$ '
°O¦í ^[ ¤Î ^G ¦b©R¥O¦C¦r¦ê¬O³æ¤@¦r¤¸
ªº ESC ¤Î BEL (¦b emacs ªºÀô¹Ò¤U¥i¥H¥Î
C-q ESC ¤Î C-q C-g ¿é¤J).
n¦b csh §¹¦¨¦P¼Ëªº¨Æ¯uªº¦³ÂI§xÃø, ¦Ó§Ú̥ΤU±ªº¤è¦¡¨Ó¸Ñ¨M°ÝÃD:
switch ($TERM)
case "xterm*":
set host=`hostname`
alias cd 'cd \!*; echo -n "^[]0;${user}@${host}: ${cwd}^Gcsh% "'
breaksw
default:
set prompt='csh% '
breaksw
endsw
³Â·Ðªº¦a¤è¬O§ÚÌn§â cd ³oÓ«ü¥O¤Æ¨¦¨¥i°e¥X·¸¦ì¦r¦êªº¥\¯à.
°O¦í ^[ ¤Î ^G ¦b©R¥O¦C¦r¦ê¬O³æ¤@¦r¤¸ªº
ESC ¤Î BEL (¦b emacs ªºÀô¹Ò¤U¥i¥H¥Î
C-q ESC ¤Î C-q C-g ¿é¤J).
°O¦í: ¦b³¡¥÷ªº¨t²Î hostname -s ¥i¯à·|¨ú±o¸ûµuªº
hostname ¦Ó¤£¬O§¹¾ãªº¥þ¦W. ³¡¥÷¨Ï¥ÎªÌ¦b¦³²Å¸¹³sµ²ªº¥Ø¿ýÀ³¸Ó·|µo²{
`pwd` (¬A°_¨Ó¥H½T©w°õ¦æªº¬O pwd «ü¥O)
¥i¥H±o¨ì¤ñ $cwd §óºë½Tªº¸ô®|¦W.