¥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.