Next: , Previous: Parentheses, Up: Portable Shell   [Contents][Index]


10.8 ÆÃ¼ì¤Ê¥·¥§¥ëÊÑ¿ô

¥·¥§¥ë¤Îưºî¤Ë¿¼¤¯±Æ¶Á¤¹¤ë¤¿¤á¡¤»ÈÍѤ¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¥·¥§¥ëÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡¥ ¥·¥§¥ë¤«¤é¤Þ¤È¤â¤Êưºî¤ËÌá¤ë¤¿¤á¡¤unset¤¹¤Ù¤­ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¤¬¡¤ unset¤Ï°Ü¿¢À­¤¬Ìµ¤¯(see Limitations of Builtins)¡¤ÂåÂØÃͤ¬ ɬÍפˤʤê¤Þ¤¹¡¥¤³¤ì¤é¤ÎÊÑ¿ô¤ò°Ê²¼¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤·¤Þ¤¹¡¥

CDPATH

¤³¤ÎÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤­¡¤¤½¤ì¤Ïcd¤¬ÁêÂÐŪ¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¸Æ¤Ó ½Ð¤µ¤ì¤ë¤È¤­¤Ë¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤òÀßÄꤷ¤Þ¤¹¡¥POSIX 1003.1-2001¤Ç¤Ï¡¤CDPATH¤Ç¶õ¤Ç¤Ï¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê̾¤¬Àµ¤·¤¯»ÈÍѤµ¤ì ¤Æ¤¤¤ë¾ì¹ç¡¤cd¤ÏÀäÂÐŪ¤Ê¥Õ¥¡¥¤¥ë̾¤ò·ë²Ì¤È¤·¤Æ½ÐÎϤ¹¤ë¤³¤È¤Ë¤Ê¤Ã ¤Æ¤¤¤Þ¤¹¡¥»Äǰ¤Ê¤¬¤é¤³¤Î½ÐÎϤǤϡ¤abs¤¬¥Ñ¥¹¤òÆó²ó¼õ¤±¤È¤ë¤Î¤Ç¡¤ ‘abs=`cd src && pwd`’¤Î¤è¤¦¤Ê´·ÍѶ礬ÂÌÌܤˤʤê¤Þ¤¹¡¥¤Þ¤¿¡¤Â¿¤¯¤Î¥·¥§ ¥ë¤Ï¡¤¤³¤ÎÉôʬ¤ÎPOSIX¤Ë½àµò¤·¤Æ¤¤¤Þ¤»¤ó¡¥Î㤨¤Ð¡¤zsh ¤Ï¡¤.°Ê³°¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤¬CDPATH¤ÇÁªÂò¤µ¤ì¤Æ¤¤¤ë¾ì¹ç°Ê³°¡¤ ·ë²Ì¤ò½ÐÎϤ·¤Þ¤»¤ó¡¥

¼ÂºÝ¡¤¤³¤ÎÌäÂ꤬¤¢¤ë¥·¥§¥ë¤Ïunset¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Î¤Ç¡¤°Ê²¼ ¤Î¤è¤¦¤Ë¤·¤Æ¤½¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥

(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

Autoconf¤¬À¸À®¤·¤¿¥¹¥¯¥ê¥×¥È¤Ï¼«Æ°Åª¤ËCDPATH¤òunset¤¹¤ë¤Î¤Ç¡¤¤³¤ì ¤é¤Î¥¹¥¯¥ê¥×¥È¤Î¤³¤ÎÌäÂê¤ò¿´ÇÛ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡¥

IFS

IFS¤ÎºÇ½é¤Îʸ»ú¤ò¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ËÀßÄꤷ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡¥¼ÂºÝ¡¤ ‘"$@"’¤ÇÍ×ÁǤò²Ã¤¨¤ë¤È¤­¤Ï¡¤Bourne¥·¥§¥ë¤ÏºÇ½é¤Îʸ»ú(¥Ð¥Ã¥¯¥¹¥é¥Ã ¥·¥å)¤ò»ÈÍѤ·¡¤¤½¤·¤Æ¡¤¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥¨¥¹¥±¡¼¥×¤ò¤â¤¦°ìÅÙ²ò¼á¤¹¤ë(¡ª) ¥·¥§¥ë¤â¤¢¤ê¡¤¤½¤Î¤¿¤á¡¤¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¤È¤½¤Î¾¤Î´ñ̯¤Êʸ»ú¤Ç½ª¤ë¤³¤È¤¬²Ä ǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥

(split¤ò¼Â¹Ô¤·¤Æ¤¤¤Ê¤¤¤È¤­¡¤É¸½àŪ¤Ê¥³¡¼¥É¤Î)IFS¤ÎŬÀÚ¤ÊÃͤϡ¤ ‘SPCTABRET’¤Ç¤¹¡¥‘@*’¤Î°ú¿ô¤òÏ¢·ë¤¹¤ë¤¿¤á¤Ë »ÈÍѤ¹¤ë¤Î¤Ç¡¤ºÇ½é¤Îʸ»ú¤ÏÆÃ¤Ë½ÅÍפǤ¹¡¥

LANG
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MESSAGES
LC_MONETARY
LC_NUMERIC
LC_TIME

¤¢¤Þ¤ê¤Ë¿¤¯¤Î¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥³¡¼¥É¤¬C¥í¥±¡¼¥ë¤ò²¾Äꤷ¤Æ¤¤¤Æ¡¤ POSIX¤Ç¤ÏC¥í¥±¡¼¥ë¤¬Í׵ᤵ¤ì¤ë¾ì¹ç¤Ï¥í¥±¡¼¥ë¤Î´Ä¶­ÊÑ¿ô¤ò ‘C’¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¤Autoconf¤¬À¸À®¤·¤¿¥¹¥¯¥ê¥×¥È¤ÏÄ̾¤³ ¤ì¤é¤Î¤¹¤Ù¤Æ¤ÎÊÑ¿ô¤ò‘C’¤ËÀßÄꤷ¤Þ¤¹¡¥¤·¤«¤·¡¤Èóɸ½à¤Î¸Å¤¤¥·¥¹¥Æ¥à (ÆÃ¤ËSCO)¤Ç¤Ï¡¤¥í¥±¡¼¥ë¤Î´Ä¶­ÊÑ¿ô¤¬‘C’¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì ¹ç¤Ï²õ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¡¤¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¤ÇAutoconf¤¬À¸À®¤·¤¿¥¹¥¯¥ê¥×¥È¤ò¼Â ¹Ô¤¹¤ë¤È¤­¡¤Âå¤ï¤ê¤ËÊÑ¿ô¤ò̤ÀßÄê(unset)¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¥

LANGUAGE

LANGUAGE¤ÏPOSIX¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¤¤½¤ì¤Ï¾ì¹ç¤Ë¤è¤Ã ¤Æ¤ÏLC_ALL¤ËÍ¥À褵¤»¤ëGNU¤Î³ÈÄ¥¤Ê¤Î¤Ç¡¤Autoconf¤¬À¸À®¤· ¤¿¥¹¥¯¥ê¥×¥È¤Ï¤½¤ì¤âÀßÄꤷ¤Þ¤¹¡¥

LC_ADDRESS
LC_IDENTIFICATION
LC_MEASUREMENT
LC_NAME
LC_PAPER
LC_TELEPHONE

¤³¤ì¤é¤Î¥í¥±¡¼¥ë´Ä¶­ÊÑ¿ô¤ÏGNU¤Î³ÈÄ¥¤Ç¤¹¡¥¤½¤ì¤é¤Ï¡¤¾åµ­¤Î POSIX¤ÎÃç´Ö(LC_COLLATE¤Ê¤É)¤Î¤è¤¦¤Ë°·¤ï¤ì¤Þ¤¹¡¥

LINENO

¤Û¤È¤ó¤É¤Î¶áÂåŪ¤Ê¥·¥§¥ë¤Ï¡¤¸½ºß¤Î¹ÔÈÖ¹æ¤òLINENO¤ÇÄ󶡤·¤Æ¤¤¤Þ¤¹¡¥ ¤½¤ÎÃͤϡ¤¸½ºß¤Î¥³¥Þ¥ó¥É¤ÎºÇ½é¤Î¹ÔÈÖ¹æ¤Ç¤¹¡¥Autoconf¤Ï¶áÂåŪ¤Ê¥·¥§¥ë¤Ç configure¤Î¼Â¹Ô¤ò»î¤ß¤Þ¤¹¡¥ÍøÍѲÄǽ¤Ê¤½¤Î¤è¤¦¤Ê¥·¥§¥ë¤¬Ìµ¤¤¾ì ¹ç¡¤¤½¤ì¤¾¤ì¤Îʸ»úÎó$LINENO(±Ñ¿ôʸ»ú¤¬Â³¤«¤Ê¤¤)¤ò¥¤¥ó¥¹¥¿¥ó¥¹¤ò¹Ô ÈÖ¹æ¤ÇÃÖ´¹¤¹¤ë¤¿¤á¤Ë¡¤Sed¤ËÁ°¤â¤Ã¤ÆÅϤ¹¼êË¡¤òÍѤ¤¤Æ¡¤LINENO¤Î¼ÂÁõ ¤ò»î¤ß¤Þ¤¹¡¥

¼Â¹Ô»þ¤Îưºî¤¬°Û¤Ê¤ë¤Î¤Ç¡¤eval¤ÇLINENO¤Ë°Í¸¤¹¤Ù¤­¤Ç¤Ï ¤¢¤ê¤Þ¤»¤ó¡¥¤Þ¤¿¡¤Sed¤ËÁ°¤â¤Ã¤ÆÅϤ¹¼êË¡¤òÍѤ¤¤ë²ÄǽÀ­¤Ï¡¤°úÍÑÉä¤Ç°Ï¤ó¤Ç ¤¤¤ë¤È¤­¡¤¥Ò¥¢¥É¥­¥å¥á¥ó¥È¤Î¤È¤­¡¤¤Þ¤¿¤Ï¹Ô¤ò¸Ù¤ë¤Û¤ÉŤ¤¥³¥Þ¥ó¥É¤Î¤È¤­¡¤ $LINENO¤Ë°Í¸¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡¥¤¿¤À¤·¡¤¥µ¥Ö¥·¥§ ¥ë¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡¥°Ê²¼¤ÎÎã¤Ç¤Ï¡¤°ì¹ÔÌÜ¡¤Ï»¹ÔÌÜ¡¤¤½¤·¤Æ¶å¹ÔÌܤϰܿ¢À­¤¬ ¤¢¤ê¤Þ¤¹¤¬¡¤¤½¤ì°Ê³°¤ÎLINENO¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï°Ü¿¢À­¤¬¤¢¤ê¤Þ¤»¤ó¡¥

$ cat lineno
echo 1. $LINENO
cat <<EOF
3. $LINENO
4. $LINENO
EOF
( echo 6. $LINENO )
eval 'echo 7. $LINENO'
echo 8. '$LINENO'
echo 9. $LINENO '
10.' $LINENO
$ bash-2.05 lineno
1. 1
3. 2
4. 2
6. 6
7. 1
8. $LINENO
9. 9
10. 9
$ zsh-3.0.6 lineno
1. 1
3. 2
4. 2
6. 6
7. 7
8. $LINENO
9. 9
10. 9
$ pdksh-5.2.14 lineno
1. 1
3. 2
4. 2
6. 6
7. 0
8. $LINENO
9. 9
10. 9
$ sed '=' <lineno |
>   sed '
>     N
>     s,$,-,
>     : loop
>     s,^\([0-9]*\)\(.*\)[$]LINENO\([^a-zA-Z0-9_]\),\1\2\1\3,
>     t loop
>     s,-$,,
>     s,^[0-9]*\n,,
>   ' |
>   sh
1. 1
3. 3
4. 4
6. 6
7. 7
8. 8
9. 9
10. 10
NULLCMD

¥³¥Þ¥ó¥É‘>foo’¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¤È¤­¡¤zsh¤Ï‘$NULLCMD >foo’¤ò¼Â¹Ô¤·¤Þ¤¹¡¥Bourne¥·¥§¥ë¤ÏNULLCMD¤¬‘:’¤À¤È¹Í¤¨¤Þ¤¹¤¬¡¤ zsh¤ÏBourne¥·¥§¥ë¸ß´¹¥â¡¼¥É¤Ç¤â¡¤NULLCMD¤ò‘cat’¤Ë ÀßÄꤷ¤Þ¤¹¡¥NULLCMD¤ÎÀßÄê¤ò˺¤ì¤¿¾ì¹ç¡¤¥¹¥¯¥ê¥×¥È¤Ïɸ½àÆþÎϤ«¤é¤Î ¥Ç¡¼¥¿ÂÔ¤Á¤Î¤¿¤á¥µ¥¹¥Ú¥ó¥É¾õÂ֤ˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡¥

ENV
MAIL
MAILPATH
PS1
PS2
PS4

¤³¤ì¤é¤ÎÊÑ¿ô¤Ï¡¤ÂÐÏÃŪ¤Ê¥·¥§¥ë¤ËÂФ·¤Æ¤Î¤ß±Æ¶Á¤¹¤ë¤È¹Í¤¨¤é¤ì¤ë¤Î¤Ç¡¤¥·¥§ ¥ë¥¹¥¯¥ê¥×¥È¤ËÂФ·¤ÆÌäÂê¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¤·¤«¤·¡¤¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥·¥§¥ë (pre-3.0 UWIN ksh)¤Ï¤½¤ì¤¬ÂÐÏÃŪ¤«¤É¤¦¤«¤òº®Æ±¤·¡¤¤Ä¤Þ¤ê (Î㤨¤Ð)PS1¤ÎÉûºîÍѤȤ·¤Æ¡¤‘$?’¤òͽ´ü¤»¤ºÊѹ¹¤¹¤ë¤Ï¤º¤Ç¤¹¡¥¤³ ¤Î¥Ð¥°¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¡¤Autoconf¤¬À¸À®¤·¤¿¥¹¥¯¥ê¥×¥È¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤³¤È¤ò ¤·¤Þ¤¹¡¥

(unset ENV) >/dev/null 2>&1 && unset ENV MAIL MAILPATH
PS1='$ '
PS2='> '
PS4='+ '
PWD

POSIX 1003.1-2001¤Ï¡¤cd¤Èpwd¤¬¸½ºß¤Î¥Ç¥£¥ì ¥¯¥È¥ê¤ÎÏÀÍýŪ¤Ê¥Ñ¥¹¤ò¼¨¤¹PWD´Ä¶­ÊÑ¿ô¤òɬ¤º¹¹¿·¤¹¤ë¤³¤È¤òÍ׵ᤷ¤Æ ¤¤¤Þ¤¹¤¬¡¤ÅÁÅýŪ¤Ê¥·¥§¥ë¤Ï¤³¤ì¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡¥°ì¤Ä¤Î¥·¥§¥ë¤Î¼ÂÂÎ ¤¬PWD¤ò´ÉÍý¤·¤Æ¤¤¤Æ¡¤¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÈÊ̤Υ·¥§¥ë¤ÏPWD¤òÃÎ¤é ¤º¤Ëcd¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¡¤¤³¤ì¤Çº®Í𤹤ë¤Ï¤º¤Ç¤¹¡¥¤³¤Î¾õ¶·¤Ç¤Ï¡¤ PWD¤Ï´Ö°ã¤Ã¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¼¨¤·¤Þ¤¹¡¥‘$PWD’¤ÎÂå¤ï¤ê¤Ë ‘`pwd`’¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥

status

¤³¤ÎÊÑ¿ô¤Ï¡¤zsh(¾¯¤Ê¤¯¤È¤â3.1.6)¤Ç¤Î‘$?’¤Ø¤Î¥¨¥¤¥ê¥¢¥¹¤Ç¡¤¤½ ¤Î¤¿¤áÆÉ¤ß½Ð¤·ÀìÍѤˤʤäƤ¤¤Þ¤¹¡¥»ÈÍѤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡¥

PATH_SEPARATOR

ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤configure¤Ï¥Ó¥ë¥É¥·¥¹¥Æ¥à¤ËÂФ¹¤ëŬÀÚ¤Ê ¥Ñ¥¹¤ÎʬΥ»Ò¤ò¸¡½Ð¤·¡¤PATH_SEPARATOR½ÐÎÏÊÑ¿ô¤ò¤½¤ì¤Ë±þ¤¸¤ÆÀßÄꤷ ¤Þ¤¹¡¥

DJGPP¥·¥¹¥Æ¥à¤Ç¤Ï¡¤¥Ñ¥¹Ê¬Î¥»Ò¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë¡¤PATH_SEPARATOR´Ä¶­ ÊÑ¿ô¤òbash¤¬(PATH¤Î¤è¤¦¤Ê)ÆÃÄê¤Î´Ä¶­ÊÑ¿ô¤òÀßÄꤹ¤ë¤¿¤á ¤Ë»ÈÍѤ·¤Æ¤¤¤ë‘:’¤Þ¤¿¤Ï‘;’¤Î¤¤¤º¤ì¤«¤ËÀßÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡¥ ¤³¤ì¤ÏbashÆâÉô¤Ç¤Î¤ßưºî¤¹¤ë¤Î¤Ç¡¤¥Ñ¥¹Ê¬Î¥»Ò¤È¤·¤Æ‘;’¤¬¥µ ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ëÆâ¤ÇÂåÆþ¤¹¤ëÊý¤¬°ÂÁ´¤À¤í¤¦¤È¤¤¤¦Íýͳ¤«¤é¡¤ configure¤Çɸ½àŪ¤ÊDOS¤Î¥Ñ¥¹Ê¬Î¥»Ò(‘;’)¤ò¸¡½Ð¤· ¤¿¤¤¤³¤È¤Ç¤·¤ç¤¦¡¥¤½¤Î¤¿¤á¡¤¤³¤ÎÊÑ¿ô¤òunset¤¹¤ë¤«¡¤‘;’¤ËÀßÄꤷ¤Æ¤¯ ¤À¤µ¤¤¡¥

RANDOM

RANDOM¤òÄ󶡤¹¤ë¥·¥§¥ë¤â¿¤¯¤¢¤ê¡¤¤½¤ÎÊÑ¿ô¤Ï»ÈÍѤ¹¤ë¤¿¤Ó¤Ë°Û¤Ê¤ë À°¿ô¤òÊÖ¤·¤Þ¤¹¡¥¤½¤ÎÃͤ¬»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¡¤Êѹ¹¤µ¤ë¤³¤È¤Ï¤Û¤È¤ó¤É¤¢¤ê ¤Þ¤»¤ó¤¬¡¤IRIXQ 6.5¤Ç¤ÏËè²óÃͤ¬Êѹ¹¤µ¤ì¤Þ¤¹¡¥¤³¤ì¤Ï¡¤set ¤ò»ÈÍѤ·¤Æ´Æ»ë¤¹¤Ù¤­¤Ç¤¹¡¥


Next: , Previous: Parentheses, Up: Portable Shell   [Contents][Index]