Next: Here-Documents, Up: Portable Shell [Contents][Index]
¤¤¤¯¤Ä¤«¤Î¥·¥§¥ë¤Î¥Õ¥¡¥ß¥ê¡¼¤¬¤¢¤ê¡¤ºÇ¤â½ÅÍפʤâ¤Î¤Ï¡¤Bourne¥Õ¥¡¥ß¥ê¡¼¤È C¥·¥§¥ë¥Õ¥¡¥ß¥ê¡¼¤Ç¡¤¤½¤ì¤é¤ÏÁ´¤¯¸ß´¹À¤¬¤¢¤ê¤Þ¤»¤ó¡¥°Ü¿¢À¤Î¹â¤¤¥·¥§¥ë ¥¹¥¯¥ê¥×¥È¤ò½ñ¤¤¿¤¤¾ì¹ç¡¤C¥·¥§¥ë¥Õ¥¡¥ß¥ê¡¼¤Î¥á¥ó¥Ð¡¼¤ÏÈò¤±¤Æ¤¯¤À¤µ¤¤¡¥ the Shell difference FAQ¤Ë¤Ï¡¤Unix¥·¥§¥ë¤Î¾®¤µ¤ÊÎò»Ë¤È¡¤¤½¤ì¤é¤Î´Ö¤ÎÈæ³Ó¤¬ ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡¥
°Ê²¼¤Ç¡¤Bourne¥·¥§¥ë¥Õ¥¡¥ß¥ê¡¼¤Î¥á¥ó¥Ð¡¼¤ò¡¤¤¤¤¯¤Ä¤«ÀâÌÀ¤·¤Æ¤¤¤¤Þ¤¹¡¥
ash
¤Ï¡¤Æ°ºî¤Î·Ú¤¤Bourne¸ß´¹¥·¥§¥ë¤È¤·¤ÆGNU/Linux¤È
BSD¥·¥¹¥Æ¥à¤Ç¤è¤¯»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡¥Ash 0.2¤Ë¤Ï0.3.x¥·¥ê¡¼¥º¤Ç
½¤Àµ¤µ¤ì¤Æ¤¤¤ë¥Ð¥°¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤¬¡¤¥Ð¡¼¥¸¥ç¥ó0.2¤Ï¿¤¯¤Î
GNU/Linux ÇÛÉÛʪ¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤°Ü¿¢À¤Î¹â¤¤¥·¥§¥ë¥¹¥¯¥ê
¥×¥È¤Ç¤Ï¤½¤ì¤ò²óÈò¤¹¤Ù¤¤Ç¤¹¡¥
Ash 0.2¤Ç¤Î¸ß´¹À¤Î¤¿¤á°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¥
foo= false $foo echo "Don't use it: $?"
cat ${FOO=`bar`}
bash
¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¡¤
BASH_VERSION
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡¥¤½¤Î³È
Ä¥¤òÍøÍÑÉÔ²Äǽ¤Ë¤·¡¤POSIX¸ß´¹À¤òÍ׵᤹¤ë¤¿¤á¡¤‘set -o
posix’ ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡¥¾ÜºÙ¤Ï¡¤See Bash
POSIX Mode in The GNU Bash Reference Manual.
¥Ð¡¼¥¸¥ç¥ó2.05¤È¤½¤ì°Ê¹ß¤Îbash
¤Ï¡¤set
ÁȤ߹þ¤ß¥³¥Þ¥ó
¥É¤Î½ÐÎϤËÂФ·¤Æ¡¤¤½¤Î½ÐÎϤò¤è¤êÍÆ°×¤Ëɾ²Á¤Ç¤¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤
°Û¤Ê¤ë½ñ¼°¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡¥¤·¤«¤·¡¤¤³¤Î½ÐÎϤϤ½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î
bash
(¤ä¡¤¤ª¤½¤é¤¯¤½¤ì°Ê³°¤Î¿¤¯¤Î¥·¥§¥ë)¤È¸ß´¹À¤¬¤¢¤ê¤Þ¤»¤ó¡¥
¤½¤Î¤¿¤á¡¤bash
2.05¤ä¤½¤ì°Ê¾å¤Î¤â¤Î¤òconfigure
¤Î¼Â¹Ô
¤Ë»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¤¤½¤ì°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥Ó¥ë¥É¤Îºî¶È¤ËÂФ·¤Æ¤â¡¤Æ±¤¸¤è¤¦¤Ë
bash
2.05¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥
Korn¥·¥§¥ë¤ÏBourne¥Õ¥¡¥ß¥ê¡¼¤È¸ß´¹À¤¬¤¢¤ê¡¤POSIX¤Ë¤Û¤È¤ó¤É½à
µò¤·¤Æ¤¤¤Þ¤¹¡¥°ìÈÌŪ¤Ë‘ksh88’¤È‘ksh93’¤È¤¤¤¦Æó¤Ä¤ÎÍ̾¤ÊÊѼ郎
¤¢¤ê¡¤ºÇ½é¤Î¥ê¥ê¡¼¥¹¤Îǯ¤Ç¸å¤«¤é̿̾¤µ¤ì¤Þ¤·¤¿¡¥¤½¤ì¤é¤ÏÄ̾ï
ksh
¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹¤¬¡¤Solaris¥·¥¹¥Æ¥à¤Ë¤Ï»°¤Ä¤ÎÊѼ郎¤¢¤ê¤Þ¤¹¡¥
/usr/bin/ksh
¤Ï‘ksh88’¤Ç¤¹¡¥
/usr/xpg4/bin/sh
¤ÏPOSIX½àµò¤Î‘ksh88’¤ÎÎà»÷ʪ¤Ç
¤¹¡¥
/usr/dt/bin/dtksh
¤Ï‘ksh93’¤Ç¤¹¡¥/usr/bin/ksh
¤¬
Soralis¤Îɸ½à¤Ç¤¹¡¥¤½¤ì°Ê³°¤ÎÎà»÷ʪ¤Ï¥ª¥×¥·¥ç¥ó¥Ñ¥Ã¥±¡¼¥¸¤Î°ìÉô¤Ç¤¹¡¥¤³
¤ì¤é¤Î¥Ñ¥Ã¥±¡¼¥¸¤Ë¤ÏÄɲäÎÊѹ¹¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¥¤½¤ì¤é¤ÏºÇ¾®¸Â¤ÎOS¤Î¥¤¥ó¥¹
¥È¡¼¥ë¤Î°ìÉô¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¤¥¤¥ó¥¹¥È¡¼¥ë¾õ¶·¤Ë¤è¤Ã¤Æ¤Ï̵¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡¥
¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó¤Î‘pdksh’¤È¸Æ¤Ð¤ì¤Æ¤¤¤ëKorn¥·¥§¥ë¤Î¥¯¥í¡¼¥ó¤â¹¤¯
ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¤½¤ì¤Ï¡¤¤¤¤¯¤Ä¤«ÆÈ¼«¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¤¬
‘ksh88’¤Îµ¡Ç½¤Î¤Û¤È¤ó¤É¤¬¤¢¤ê¤Þ¤¹¡¥
zsh
¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¡¤
ZSH_VERSION
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡¥¥Ç¥Õ¥©¥ë
¥È¤Ç¡¤zsh
¤ÏBourne¤È¸ß´¹À¤Ï¤¢¤ê¤Þ¤»¤ó¡¥‘emulate
sh’¤ò¼Â¹Ô¤·¡¤NULLCMD
¤ò‘:’¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥¾ÜºÙ¤Ï¡¤
See Compatibility in The Z Shell Manual.
Zsh 3.0.8¤Ï¡¤Mac OS X 10.0.3¤Ç¤Î¥Í¥¤¥Æ¥£¥Ö¤Ê/bin/sh
¤Ç¤¹¡¥
Russ Allbery¤ÈRobert Lipe¤Î´Ö¤Ç¤Ê¤µ¤ì¤¿¡¤°Ê²¼¤ÎµÄÏÀ¤ÏÆÉ¤à²ÁÃͤ¬¤¢¤ê¤Þ¤¹¡¥
Russ Allbery:
/bin/sh
¤¬Í£°ì¤Î¥·¥§¥ë¤Ç¤¢¤ë¤È¤¤¤¦GNU²¾Äê¤Ç¤Ï¡¤±Êµ×¤Ë ¹Ô¤µÍ¤Þ¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡¥¥Ù¥ó¥À¡¼¤Ï¡¤¥æ¡¼¥¶¤Î´û¸¤Î¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ò²õ¤· ¤¿¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¤·¡¤Bourne¥·¥§¥ë¤Ë¤ÏPOSIX¥·¥§¥ë¤È´°Á´¤Ë¸ß´¹¤Ç ¤Ï¤Ê¤¤Éôʬ¤â¤¢¤ê¤Þ¤¹¡¥¤³¤Î¤¿¤á¡¤¤³¤ÎÊýË¡¤òºÎÍѤ¹¤ë¥Ù¥ó¥À¡¼¤Ï¡¤·è¤· ¤Æ (OK…“·è¤·¤Æ¡¤·è¤·¤Æ¤È¤Ï¸À¤ï¤Ê¤¤¤è”)Bourne¥·¥§¥ë¤ò (/bin/sh
¤È¤·¤Æ)POSIX¥·¥§¥ë¤ÇÃÖ¤´¹¤¨¤Ê¤¤¤Ç¤·¤ç¤¦¡¥
Robert Lipe:
¤³¤ì¤ÏËÜÅö¤ËÌäÂê¤Ç¤¹¡¥¤Û¤È¤ó¤É¤Î¤â¤Î(¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤ÎSystem V)¤Ï¥·¥§ ¥ë´Ø¿ô¤ò¼õ¤±Æþ¤ì¤ëBourne¥·¥§¥ë¤¬¤¢¤ë¤Î¤Ç¤¹¤¬¡¤¤Û¤È¤ó¤É¤Î¥Ù¥ó¥À¡¼¤Î
/bin/sh
¤ÏPOSIX¥·¥§¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¤½¤Î¤¿¤á¡¤¤Û¤È¤ó¤É¸½ºß¤Î¥·¥¹¥Æ¥à¤ÏPOSIXɸ½à¤ËŬ¹ç¤·¤Æ¤¤¤ë¥·¥§ ¥ë¤¬¤É¤³¤«¤Ë¤¢¤ë¤Î¤Ç¤¹¤¬¡¤ÌäÂê¤Ï¤½¤ì¤ò¸«¤Ä¤±¤ë¤³¤È¤Ç¤¹¡¥