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


10.1 ¥·¥§¥ë

¤¤¤¯¤Ä¤«¤Î¥·¥§¥ë¤Î¥Õ¥¡¥ß¥ê¡¼¤¬¤¢¤ê¡¤ºÇ¤â½ÅÍפʤâ¤Î¤Ï¡¤Bourne¥Õ¥¡¥ß¥ê¡¼¤È C¥·¥§¥ë¥Õ¥¡¥ß¥ê¡¼¤Ç¡¤¤½¤ì¤é¤ÏÁ´¤¯¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó¡¥°Ü¿¢À­¤Î¹â¤¤¥·¥§¥ë ¥¹¥¯¥ê¥×¥È¤ò½ñ¤­¤¿¤¤¾ì¹ç¡¤C¥·¥§¥ë¥Õ¥¡¥ß¥ê¡¼¤Î¥á¥ó¥Ð¡¼¤ÏÈò¤±¤Æ¤¯¤À¤µ¤¤¡¥ the Shell difference FAQ¤Ë¤Ï¡¤Unix¥·¥§¥ë¤Î¾®¤µ¤ÊÎò»Ë¤È¡¤¤½¤ì¤é¤Î´Ö¤ÎÈæ³Ó¤¬ ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡¥

°Ê²¼¤Ç¡¤Bourne¥·¥§¥ë¥Õ¥¡¥ß¥ê¡¼¤Î¥á¥ó¥Ð¡¼¤ò¡¤¤¤¤¯¤Ä¤«ÀâÌÀ¤·¤Æ¤¤¤­¤Þ¤¹¡¥

Ash

ash¤Ï¡¤Æ°ºî¤Î·Ú¤¤Bourne¸ß´¹¥·¥§¥ë¤È¤·¤ÆGNU/Linux¤È BSD¥·¥¹¥Æ¥à¤Ç¤è¤¯»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡¥Ash 0.2¤Ë¤Ï0.3.x¥·¥ê¡¼¥º¤Ç ½¤Àµ¤µ¤ì¤Æ¤¤¤ë¥Ð¥°¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¤¬¡¤¥Ð¡¼¥¸¥ç¥ó0.2¤Ï¿¤¯¤Î GNU/Linux ÇÛÉÛʪ¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤°Ü¿¢À­¤Î¹â¤¤¥·¥§¥ë¥¹¥¯¥ê ¥×¥È¤Ç¤Ï¤½¤ì¤ò²óÈò¤¹¤Ù¤­¤Ç¤¹¡¥

Ash 0.2¤Ç¤Î¸ß´¹À­¤Î¤¿¤á°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¥

Bash

bash¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¡¤ BASH_VERSION¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Æ¤¯¤À¤µ¤¤¡¥¤½¤Î³È Ä¥¤òÍøÍÑÉÔ²Äǽ¤Ë¤·¡¤POSIX¸ß´¹À­¤òÍ׵᤹¤ë¤¿¤á¡¤‘set -o posix’ ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡¥¾ÜºÙ¤Ï¡¤See Bash POSIX Mode in The GNU Bash Reference Manual.

Bash 2.05¤È¤½¤ì°Ê¹ß

¥Ð¡¼¥¸¥ç¥ó2.05¤È¤½¤ì°Ê¹ß¤Îbash¤Ï¡¤setÁȤ߹þ¤ß¥³¥Þ¥ó ¥É¤Î½ÐÎϤËÂФ·¤Æ¡¤¤½¤Î½ÐÎϤò¤è¤êÍÆ°×¤Ëɾ²Á¤Ç¤­¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¤ °Û¤Ê¤ë½ñ¼°¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡¥¤·¤«¤·¡¤¤³¤Î½ÐÎϤϤ½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î bash(¤ä¡¤¤ª¤½¤é¤¯¤½¤ì°Ê³°¤Î¿¤¯¤Î¥·¥§¥ë)¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó¡¥ ¤½¤Î¤¿¤á¡¤bash 2.05¤ä¤½¤ì°Ê¾å¤Î¤â¤Î¤òconfigure¤Î¼Â¹Ô ¤Ë»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¤¤½¤ì°Ê³°¤Î¤¹¤Ù¤Æ¤Î¥Ó¥ë¥É¤Îºî¶È¤ËÂФ·¤Æ¤â¡¤Æ±¤¸¤è¤¦¤Ë bash 2.05¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥

Ksh

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¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¸¡½Ð¤¹¤ë¤¿¤á¤Ë¡¤ 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ɸ½à¤ËŬ¹ç¤·¤Æ¤¤¤ë¥·¥§ ¥ë¤¬¤É¤³¤«¤Ë¤¢¤ë¤Î¤Ç¤¹¤¬¡¤ÌäÂê¤Ï¤½¤ì¤ò¸«¤Ä¤±¤ë¤³¤È¤Ç¤¹¡¥