Rechercher une page de manuel
bash
Langue: ja
Version: 2001 Mar 5 (openSuse - 09/10/07)
Section: 1 (Commandes utilisateur)
Sommaire
- ̾Á°
- ½ñ¼°
- Ãøºî¸¢
- ÀâÌÀ
- ¥ª¥×¥·¥ç¥ó
- °ú¤¿ô
- µ¯Æ°
- ÄêµÁ
- ͽÌó¸ì
- ¥·¥§¥ë¤Îʸˡ
- ¥³¥á¥ó¥È (COMMENTS)
- ¥¯¥©¡¼¥È
- ¥Ñ¥é¥á¡¼¥¿
- Ÿ³«
- ¥ê¥À¥¤¥ì¥¯¥È
- ¥¨¥¤¥ê¥¢¥¹
- ´Ø¿ô
- »»½Ñ¼°É¾²Á
- ¾ò·ï¼°
- ñ½ã¤Ê¥³¥Þ¥ó¥É¤ÎŸ³«
- ¥³¥Þ¥ó¥É¤Î¼Â¹Ô
- ¥³¥Þ¥ó¥É¼Â¹Ô´Ä¶
- ´Ä¶
- ½ªÎ»¥¹¥Æ¡¼¥¿¥¹
- ¥·¥°¥Ê¥ë
- ¥¸¥ç¥ÖÀ©¸æ
- ¥×¥í¥ó¥×¥È
- READLINE ¥é¥¤¥Ö¥é¥ê
- ÍúÎò (HISTORY)
- ÍúÎò¤ÎŸ³«
- ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É
- À©¸ÂÉÕ¤¤Î¥·¥§¥ë(RESTRICTED SHELL)
- ´ØÏ¢¹àÌÜ
- ¥Õ¥¡¥¤¥ë
- Ãø¼Ô
- ¥Ð¥°Êó¹ð
- ¥Ð¥°
̾Á°
bash - GNU Bourne-Again SHell½ñ¼°
bash [options] [file]Ãøºî¸¢
Bash is Copyright (C) 1989-2001 by the Free Software Foundation, Inc.ÀâÌÀ
bash ¤Ï¡¢É¸½àÆþÎϤä¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß¹þ¤ó¤À¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡¢ sh ¸ß´¹¤Î¥³¥Þ¥ó¥É¸À¸ì¥¤¥ó¥¿¥×¥ê¥¿¤Ç¤¹¡£ bash ¤Ë¤Ï¡¢Korn ¥·¥§¥ë¤ä C ¥·¥§¥ë (ksh ¤ä csh) ¤ÎÊØÍø¤Êµ¡Ç½¤âºÎ¤êÆþ¤ì¤é¤ì¤Æ¤¤¤Þ¤¹¡£bash ¤Ï IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2) ¤Ë½àµò¤¹¤ë¼ÂÁõ¤òÌܻؤ·¤Æ¤¤¤Þ¤¹¡£
¥ª¥×¥·¥ç¥ó
bash ¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤òµ¯Æ°»þ¤Ë²ò¼á¤·¤Þ¤¹ (ÁȤ߹þ¤ß¥³¥Þ¥ó¥É set ¤ÎÀâÌÀ¤Ç½Ò¤Ù¤é¤ì¤Æ¤¤¤ë 1 ʸ»ú¤Î¥·¥§¥ë¥ª¥×¥·¥ç¥ó¤â»È¤¨¤Þ¤¹):- -c string
- -c ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢¥³¥Þ¥ó¥É¤¬ string ¤«¤éÆÉ¤ß¹þ¤Þ¤ì¤Þ¤¹¡£ string ¤Î¸å¤Ë°ú¤¿ô¤¬¤¢¤ì¤Ð¡¢¤³¤ì¤é¤Ï °ÌÃ֥ѥé¥á¡¼¥¿ (positional parameter: $0 ¤«¤é¤Ï¤¸¤Þ¤ë¥Ñ¥é¥á¡¼¥¿) ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
- -r
- -r ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢ bash ¤Ï À©¸Â¤µ¤ì¤¿¾õÂÖ (restricted) ¤È¤Ê¤ê¤Þ¤¹ (¸å½Ò¤Î À©¸ÂÉÕ¤¤Î¥·¥§¥ë ¤ò»²¾È)¡£
- -i
- -i ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤ë¤È¡¢ bash ¤Ï ÂÐÏÃŪ (interactive) ¤Ëưºî¤·¤Þ¤¹¡£
- -s
- -s ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤È¡¢ ¥ª¥×¥·¥ç¥ó¤ò¤¹¤Ù¤Æ½èÍý¤·¤¿¸å¤Ë°ú¤¿ô¤¬»Ä¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ ¥³¥Þ¥ó¥É¤Ïɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤Þ¤ì¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢ ÂÐÏÃŪ¥·¥§¥ë¤òµ¯Æ°¤¹¤ë¤È¤¤Ë °ÌÃ֥ѥé¥á¡¼¥¿¤òÀßÄê¤Ç¤¤Þ¤¹¡£
- -D
- Æó½Å°úÍÑÉä¤Ë¤è¤ë¥¯¥©¡¼¥Èʸ»úÎó (double-quoted strings) ¤Ë $ ¤¬Á°ÃÖ¤µ¤ì¤¿¤â¤Î¤ò¡¢Á´¤Æ¥ê¥¹¥È¤·¤ÆÉ¸½à½ÐÎϤ˽ÐÎϤ·¤Þ¤¹¡£ ¤³¤ì¤é¤Ï¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤¬ C ¤Þ¤¿¤Ï POSIX °Ê³°¤Î»þ¤Ë¡¢ ËÝÌõ¤ÎÂоݤȤʤë¤Ù¤Ê¸»úÎó¤Ç¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ ¼«Æ°Åª¤Ë -n ¥ª¥×¥·¥ç¥ó¤â»ØÄꤵ¤ì¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¥³¥Þ¥ó¥É¤ÏÁ´¤¯¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
- --
- -- ¤Ï¥ª¥×¥·¥ç¥ó¤Î½ª¤ï¤ê¤ò¼¨¤·¡¢¤½¤ì°Ê¹ß¤Î¥ª¥×¥·¥ç¥ó½èÍý¤ò¹Ô¤¤¤Þ¤»¤ó¡£ -- °Ê¹ß¤Î°ú¤¿ô¤ÏÁ´¤Æ¡¢¥Õ¥¡¥¤¥ë̾¤ä°ú¤¿ô¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ °ú¤¿ô - ¤Ï -- ¤ÈƱ¤¸¤Ç¤¹¡£
bash ¤¬²ò¼á¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ë¤ÏÊ£¿ô¤Îʸ»ú¤«¤é¤Ê¤ë¤â¤Î¤â¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤òǧ¼±¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥óÃæ¤Ç 1 ʸ»ú¤Î¥ª¥×¥·¥ç¥ó¤è¤ê¤âÁ°¤ËÃÖ¤«¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
- --dump-po-strings
- -D ¤ÈƱ¤¸¤Ç¤¹¤¬¡¢ ½ÐÎÏ¤Ï GNU gettext ¤Î po (¥Ý¡¼¥¿¥Ö¥ë¥ª¥Ö¥¸¥§¥¯¥È) ¥Õ¥¡¥¤¥ë·Á¼°¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£
- --dump-strings
- -D ¤ÈƱ¤¸¤Ç¤¹¡£
- --help
- »ÈÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¥á¥Ã¥»¡¼¥¸¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢Àµ¾ï½ªÎ»¤·¤Þ¤¹¡£
- --init-file file
- --rcfile file
- ÂÐÏÃŪ¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿¾ì¹ç¡¢ ¸Ä¿ÍÍѤνé´ü²½¥Õ¥¡¥¤¥ë ~/.bashrc ¤ÎÂå¤ï¤ê¤Ë file ¤«¤é¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹ (¸å½Ò¤Î µ¯Æ° ¥»¥¯¥·¥ç¥ó¤ò»²¾È)¡£
- --login
- ¥í¥°¥¤¥ó¥·¥§¥ë (¸å½Ò¤Î µ¯Æ° ¥»¥¯¥·¥ç¥ó¤ò»²¾È) ¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿¤«¤Î¤è¤¦¤Ë bash ¤òưºî¤µ¤»¤Þ¤¹¡£
- --noediting
- ¥·¥§¥ë¤¬ÂÐÏÃŪưºî¤Î¾ì¹ç¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó¤òÆÉ¤ß¹þ¤à¤È¤¤Ë GNU readline ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤»¤ó¡£
- --noprofile
- ¥·¥¹¥Æ¥àÁ´ÂÎÍѤε¯Æ°¥Õ¥¡¥¤¥ë /etc/profile ¤ª¤è¤Ó¸Ä¿ÍÍѤνé´ü²½¥Õ¥¡¥¤¥ë ~/.bash_profile, ~/.bash_login, ~/.profile ¤Î¤¤¤º¤ì¤âÆÉ¤ß¹þ¤ß¤Þ¤»¤ó¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ bash ¤Ï¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿»þ¤Ë ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¤Þ¤¹ (¸å½Ò¤Î µ¯Æ° ¥»¥¯¥·¥ç¥ó¤ò»²¾È)¡£
- --norc
- ¥·¥§¥ë¤¬ÂÐÏÃŪưºî¤ò¹Ô¤¦¾ì¹ç¤Ë¡¢¸Ä¿ÍÍѽé´ü²½¥Õ¥¡¥¤¥ë ~/.bashrc ¤ÎÆÉ¤ß¹þ¤ß¡¦¼Â¹Ô¤ò¹Ô¤¤¤Þ¤»¤ó¡£¥·¥§¥ë¤¬ sh ¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
- --posix
- bash ¤Îưºî¤Î¤¦¤Á¡¢ ¥Ç¥Õ¥©¥ë¥È¤Î¿¶Éñ¤¤¤¬ POSIX 1003.2 ¤Îɸ½à¤È°Û¤Ê¤ëÉôʬ¤ò¡¢ ɸ½à¤ËŬ¹ç¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹ (posix ¥â¡¼¥É)¡£
- --restricted
- ¥·¥§¥ë¤Îưºî¤òÀ©¸Â¤·¤Þ¤¹ (¸å½Ò¤Î À©¸ÂÉÕ¤¤Î¥·¥§¥ë ¥»¥¯¥·¥ç¥ó¤ò»²¾È)¡£
- --verbose
- -v ¤ÈƱ¤¸¤Ç¤¹¡£
- --version
- ¼Â¹Ô¤µ¤ì¤¿ bash ¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɸ½à½ÐÎϤËɽ¼¨¤·¡¢Àµ¾ï½ªÎ»¤·¤Þ¤¹¡£
°ú¤¿ô
¥ª¥×¥·¥ç¥ó½èÍý¤Î¸å¤Ë°ú¤¿ô¤¬»Ä¤Ã¤Æ¤ª¤ê¡¢¤«¤Ä -c ¥ª¥×¥·¥ç¥ó¤È -s ¥ª¥×¥·¥ç¥ó¤Î¤¤¤º¤ì¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ºÇ½é¤Î°ú¤¿ô¤Ï¥Õ¥¡¥¤¥ë̾¤È¤ß¤Ê¤µ¤ì¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¥·¥§¥ë¥³¥Þ¥ó¥É¤¬µ½Ò¤µ¤ì¤Æ¤¤¤ë¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ë bash ¤¬µ¯Æ°¤µ¤ì¤¿¾ì¹ç¡¢ $0 ¤Ë¤½¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬ÀßÄꤵ¤ì¤Þ¤¹ (»Ä¤ê¤Î°ú¤¿ô¤Ï°ÌÃ֥ѥé¥á¡¼¥¿¤ËÀßÄꤵ¤ì¤Þ¤¹)¡£ bash ¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤È¼Â¹Ô¤ò¹Ô¤¤¡¢¤½¤·¤Æ½ªÎ»¤·¤Þ¤¹¡£ bash ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï¡¢ ¤³¤Î¥¹¥¯¥ê¥×¥ÈÃæ¤Ç¼Â¹Ô¤µ¤ì¤¿ºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¤¬Á´¤¯¼Â¹Ô¤µ¤ì¤Ê¤±¤ì¤Ð¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï 0 ¤Ç¤¹¡£µ¯Æ°
¥í¥°¥¤¥ó¥·¥§¥ë(login shell)¤È¤Ï¡¢0 ÈÖÌܤΰú¤¿ô¤ÎºÇ½é¤Îʸ»ú¤¬ - ¤Ç¤¢¤ë¥·¥§¥ë¡¢¤Þ¤¿¤Ï --login ¥ª¥×¥·¥ç¥óÉÕ¤¤Çµ¯Æ°¤µ¤ì¤¿¥·¥§¥ë¤Î¤³¤È¤Ç¤¹¡£ÂÐÏÃŪ¤Ê¥·¥§¥ë¤È¤Ï¡¢ ¥ª¥×¥·¥ç¥ó¤Ç¤Ê¤¤°ú¿ô¤¬¤Ê¤¯¡¢ ɸ½àÆþÎϤÈɸ½à½ÐÎϤ¬¤¤¤º¤ì¤âüËö¤ËÀܳ¤µ¤ì¤Æ¤¤¤Æ (¤³¤ì¤Ï isatty(3) ¤ÇÄ´¤Ù¤é¤ì¤Þ¤¹)¡¢ -c ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǵ¯Æ°¤µ¤ì¤¿¥·¥§¥ë¡¢¤Þ¤¿¤Ï -i ¥ª¥×¥·¥ç¥óÉÕ¤¤Çµ¯Æ°¤µ¤ì¤¿¥·¥§¥ë¤Î¤³¤È¤Ç¤¹¡£ bash ¤¬ÂÐÏÃŪ¤Ëưºî¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ PS1 ¤¬ÀßÄꤵ¤ì¡¢ $- ¤Ë i ¤¬´Þ¤Þ¤ì¤Þ¤¹¡£ ¤³¤ì¤òÍøÍѤ¹¤ë¤È¡¢ÂÐÏÃŪưºî¤Î¾õÂ֤Ǥ¢¤ë¤«¤É¤¦¤«¤ò¡¢ ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤äµ¯Æ°¥Õ¥¡¥¤¥ë¤ÎÆâÉô¤ÇÄ´¤Ù¤é¤ì¤Þ¤¹¡£
°Ê²¼¤ÎÃÊÍî¤Ç¤Ï¡¢ bash ¤¬¤É¤Î¤è¤¦¤Ëµ¯Æ°¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë¤«¤òÀâÌÀ¤·¤Þ¤¹¡£ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Î¤¤¤º¤ì¤«¤¬¡¢ ¡Ö¸ºß¤·¤Æ¤¤¤ë¤¬ÆÉ¤ß¹þ¤ß¤Ç¤¤Ê¤¤¡×¾ì¹ç¤Ï¡¢ bash ¤Ï¥¨¥é¡¼¤òÊó¹ð¤·¤Þ¤¹¡£¥Õ¥¡¥¤¥ë̾¤Ë´Þ¤Þ¤ì¤ë¥Á¥ë¥À¤Ï¡¢ ¸å½Ò¤Î Ÿ³« ¥»¥¯¥·¥ç¥ó¤Ë¤ª¤±¤ë ¥Á¥ë¥ÀŸ³« ¤Î¹àÌܤǽҤ٤ë¤è¤¦¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
bash ¤¬ÂÐÏÃŪ¤Ê¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤«¡¢ --login ¥ª¥×¥·¥ç¥óÉÕ¤¤ÎÈóÂÐÏÃŪ¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤È¡¢ /etc/profile ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¢ bash ¤Ï¤Þ¤º¤³¤³¤«¤é¥³¥Þ¥ó¥É¤òÆÉ¤ß¹þ¤ó¤Ç¼Â¹Ô¤·¤Þ¤¹¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ó¤À¸å¡¢ bash ¤Ï ~/.bash_profile, ~/.bash_login, ~/.profile ¤ò¤³¤Î ½çÈÖ¤Çõ¤·¤Þ¤¹¡£ bash ¤Ï¡¢¤³¤ÎÃæ¤ÇºÇ½é¤Ë¸«¤Ä¤«¤ê¡¢¤«¤ÄÆÉ¤ß¹þ¤ß¤¬²Äǽ¤Ç¤¢¤ë¥Õ¥¡¥¤¥ë¤«¤é ¥³¥Þ¥ó¥É¤òÆÉ¤ß¹þ¤ó¤Ç¼Â¹Ô¤·¤Þ¤¹¡£ --noprofile ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥·¥§¥ë¤òµ¯Æ°¤¹¤ì¤Ð¡¢ ¤³¤Îưºî¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£
¥í¥°¥¤¥ó¥·¥§¥ë¤¬½ªÎ»¤¹¤ë¤È¤¤Ë¤Ï¡¢ ~/.bash_logout ¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð¡¢ bash ¤Ï¤³¤ì¤òÆÉ¤ß¹þ¤ó¤Ç¼Â¹Ô¤·¤Þ¤¹¡£
¥í¥°¥¤¥ó¥·¥§¥ë¤Ç¤Ê¤¤ÂÐÏÃŪ¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤È¡¢ ~/.bashrc ¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð¡¢ bash ¤Ï¤³¤³¤«¤é¥³¥Þ¥ó¥É¤òÆÉ¤ß¹þ¤ß¡¢¼Â¹Ô¤·¤Þ¤¹¡£ ¤³¤Îưºî¤Ï --norc ¥ª¥×¥·¥ç¥ó¤Ç¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£ --rcfile file ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢ ¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤È¼Â¹Ô¤ò ~/.bashrc ¤«¤é¤Ç¤Ê¤¯ file ¤«¤é¹Ô¤ï¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
(Î㤨¤Ð¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë) ÈóÂÐÏÃŪ¤Ëµ¯Æ°¤µ¤ì¤ë¤È¡¢ bash ¤Ï´Ä¶ÊÑ¿ô BASH_ENV ¤òÄ´¤Ù¡¢¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ì¤Ð¤½¤ÎÃͤòŸ³«¤·¡¢ ÆÀ¤é¤ì¤¿Ãͤò¥Õ¥¡¥¤¥ë̾¤È¤ß¤Ê¤·¤Æ¡¢ ¤½¤³¤«¤é¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤È¼Â¹Ô¤ò¹Ô¤¤¤Þ¤¹¡£ ¤Ä¤Þ¤ê bash ¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ëưºî¤·¤Þ¤¹:
- if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
¤¿¤À¤·¡¢¥Õ¥¡¥¤¥ë̾¤òõ¤¹¤¿¤á¤Ë PATH ´Ä¶ÊÑ¿ô¤ÎÃͤ¬»È¤ï¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
sh ¤È¤¤¤¦Ì¾Á°¤Ç bash ¤òµ¯Æ°¤¹¤ë¤È¡¢ bash ¤Ï¸Å¤¯¤«¤é¤¢¤ë sh ¤Îµ¯Æ°Æ°ºî¤ò¤Ç¤¤ë¤À¤±¿¿»÷¤·¤è¤¦¤È¤·¤Þ¤¹¡£ ¤Þ¤¿ POSIX ɸ½à¤Ë¤â¤Ç¤¤ë¤À¤±½¾¤ª¤¦¤È¤·¤Þ¤¹¡£ ÂÐÏÃŪ¤Ê¥í¥°¥¤¥ó¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤È¡¢ ¤¢¤ë¤¤¤Ï --login ¥ª¥×¥·¥ç¥óÉÕ¤¤ÎÈóÂÐÏÃŪ¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤È¡¢ ¤³¤Î¥·¥§¥ë¤Ï¤Þ¤º /etc/profile ¤È ~/.profile ¤Î½ç¤Ç¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤È¼Â¹Ô¤ò¤·¤è¤¦¤È¤·¤Þ¤¹¡£ --noprofile ¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤È¡¢¤³¤Îưºî¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£ sh ¤È¤¤¤¦Ì¾Á°¤ÎÂÐÏÃŪ¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤È¡¢ bash ¤Ï´Ä¶ÊÑ¿ô ENV ¤òÄ´¤Ù¡¢¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ì¤Ð¤½¤ÎÃͤòŸ³«¤·¡¢ Ÿ³«¤ÇÆÀ¤¿Ãͤò¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤È¼Â¹Ô¤ò¹Ô¤¦¤¿¤á¤Î¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ»È¤¤¤Þ¤¹¡£ sh ¤È¤¤¤¦Ì¾Á°¤Çµ¯Æ°¤µ¤ì¤¿¥·¥§¥ë¤Ï¡¢ ¾¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤«¤é¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤Èµ¯Æ°¤ò¹Ô¤¦¤³¤È¤Ï¤Ê¤¤¤Î¤Ç¡¢ --rcfile ¥ª¥×¥·¥ç¥ó¤ÏÁ´¤¯¸ú²Ì¤ò»ý¤Á¤Þ¤»¤ó¡£ sh ¤È¤¤¤¦Ì¾Á°¤ÎÈóÂÐÏÃŪ¥·¥§¥ë¤È¤·¤Æµ¯Æ°¤µ¤ì¤ë¤È¡¢ ¤³¤Î¥·¥§¥ë¤Ï¾¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤ò²¿¤âÆÉ¤ß¹þ¤ß¤Þ¤»¤ó¡£ sh ¤È¤·¤Æµ¯Æ°¤µ¤ì¤¿¾ì¹ç¡¢ bash ¤Ïµ¯Æ°¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß¤ò¹Ô¤Ã¤¿¸å¤Ë POSIX ¥â¡¼¥É¤ËÆþ¤ê¤Þ¤¹¡£
--posix ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥óÅù¤Ë¤è¤ê bash ¤¬ POSIX ¥â¡¼¥É¤Çµ¯Æ°¤µ¤ì¤ë¤È¡¢ bash ¤Ïµ¯Æ°¥Õ¥¡¥¤¥ë¤Ë´Ø¤·¤Æ POSIX ɸ½à¤Ë½¾¤¤¤Þ¤¹¡£ ¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¢ÂÐÏÃŪ¥·¥§¥ë¤Ï ENV ´Ä¶ÊÑ¿ô¤òŸ³«¤·¡¢ Ÿ³«¤·¤ÆÆÀ¤é¤ì¤¿Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤«¤é¥³¥Þ¥ó¥É¤ÎÆÉ¤ß¹þ¤ß¤È¼Â¹Ô¤ò¹Ô¤¤¤Þ¤¹¡£ ¾¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤ÏÁ´¤¯ÆÉ¤ß¹þ¤ß¤Þ¤»¤ó¡£
bash ¤Ï¡¢¼«Ê¬¤òµ¯Æ°¤·¤¿¤Î¤¬¥ê¥â¡¼¥È¥·¥§¥ë¥Ç¡¼¥â¥ó (Ä̾ï¤Ï rshd) ¤«¤É¤¦¤«¤òÄ´¤Ù¤Þ¤¹¡£ rshd ¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤È bash ¤¬È½ÃǤ·¤¿¾ì¹ç¡¢ ~/.bashrc ¤¬Â¸ºß¤·¡¢¤«¤ÄÆÉ¤ß¹þ¤ß²Äǽ¤Ç¤¢¤ì¤Ð¡¢ bash ¤Ï¥³¥Þ¥ó¥É¤ò¤³¤Î¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß¹þ¤ó¤Ç¼Â¹Ô¤·¤Þ¤¹¡£ sh ¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤³¤Îưºî¤Ï¹Ô¤¤¤Þ¤»¤ó¡£ --norc ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¤³¤Îưºî¤ò¶Ø»ß¤Ç¤¤Þ¤¹¤·¡¢ --rcfile ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ð¾¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤Þ¤»¤ë¤è¤¦¤Ë¤â¤Ç¤¤Þ¤¹¡£ ¤·¤«¤·°ìÈÌŪ¤Ë¤Ï rshd ¤Ï ¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥·¥§¥ë¤òµ¯Æ°¤·¤Þ¤»¤ó¤·¡¢ »ØÄê¤â¤Ç¤¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥·¥§¥ë¤¬¼Â¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ID ¤È°Û¤Ê¤ë¼Â¸ú¥æ¡¼¥¶ (¥°¥ë¡¼¥×) ID ¤Çµ¯Æ°¤µ¤ì¡¢ ¤«¤Ä -p ¥ª¥×¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢ µ¯Æ°¥Õ¥¡¥¤¥ë¤ÏÁ´¤¯ÆÉ¤ß¹þ¤Þ¤ì¤º¡¢¥·¥§¥ë´Ø¿ô¤Ï´Ä¶¤«¤é·Ñ¾µ¤µ¤ì¤º¡¢ SHELLOPTS ¤¬´Ä¶ÊÑ¿ô¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Æ¤â̵»ë¤µ¤ì¡¢ ¼Â¸ú¥æ¡¼¥¶ ID ¤Ë¤Ï¼Â¥æ¡¼¥¶ ID ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ -p ¥ª¥×¥·¥ç¥ó¤¬µ¯Æ°»þ¤ËÍ¿¤¨¤é¤ì¤¿¾ì¹ç¡¢ µ¯Æ°»þ¤Îưºî¤ÏƱ¤¸¤Ç¤¹¤¬¡¢ ¼Â¸ú¥æ¡¼¥¶ ID ¤ÏºÆÀßÄꤵ¤ì¤Þ¤»¤ó¡£
ÄêµÁ
¤³¤Î¥É¥¥å¥á¥ó¥È¤Î»Ä¤ê¤ÎÉôʬ¤Ç¤Ï¡¢ °Ê²¼¤ÎÄêµÁ¤ò»ÈÍѤ·¤Þ¤¹¡£
- ¥Ö¥é¥ó¥¯ (blank)
- ¶õÇòʸ»ú¤Þ¤¿¤Ï¥¿¥Öʸ»ú
- ñ¸ì (word)
- ¥·¥§¥ë¤¬ 1 ñ°Ì¤È¤ß¤Ê¤¹Ê¸»úʤӡ£ ¥È¡¼¥¯¥ó(token) ¤È¤â¸À¤ï¤ì¤Þ¤¹¡£
- ̾Á° (name)
- ±Ñ¿ô»ú¤È¥¢¥ó¥À¡¼¥¹¥³¥¢Ê¸»ú¤À¤±¤«¤é¹½À®¤µ¤ì¡¢ ¤«¤ÄºÇ½é¤Îʸ»ú¤¬±Ñ»ú¤«¥¢¥ó¥À¡¼¥¹¥³¥¢Ê¸»ú¤Ç¤¢¤ë ñ¸ì¡£ ¼±ÊÌ»Ò (identifier) ¤È¤â¸À¤ï¤ì¤Þ¤¹¡£
- ¥á¥¿Ê¸»ú (metacharacter)
- ¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢Ã±¸ì¶èÀÚ¤ê¤È¤Ê¤ëʸ»ú¡£ °Ê²¼¤Îʸ»ú¤Î¤¦¤Á¤Î¤¤¤º¤ì¤«¤Ç¤¹:
| & ; ( ) < > ¥¹¥Ú¡¼¥¹ ¥¿¥Ö
- À©¸æ±é»»»Ò
- À©¸æµ¡Ç½¤ò»ý¤Ä¥È¡¼¥¯¥ó¡£ °Ê²¼¤Î¥·¥ó¥Ü¥ë¤Î¤¦¤Á¤Î¤¤¤º¤ì¤«¤Ç¤¹:
|| & && ; ;; ( ) | <newline>
ͽÌó¸ì
ͽÌó¸ì (reserved word) ¤È¤Ï¥·¥§¥ë¤Ë¤È¤Ã¤ÆÆÃÊ̤ʰÕÌ£¤ò»ý¤Äñ¸ì¤Ç¤¹¡£ °Ê²¼¤Îñ¸ì¤¬¥¯¥©¡¼¥È¤µ¤ì¤Æ¤ª¤é¤º¡¢ ¤«¤Äñ½ã¤Ê¥³¥Þ¥ó¥É (simple command) ¤Î ÀèÆ¬¤Îñ¸ì (¸å½Ò¤Î ¥·¥§¥ë¤Îʸˡ ¤ò»²¾È) ¤Ç¤¢¤ë¤«¡¢ case ¥³¥Þ¥ó¥É¤ä for ¥³¥Þ¥ó¥É¤Î 3 ÈÖÌܤÎñ¸ì¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Í½Ìó¸ì¤È¤·¤ÆÇ§¼±¤µ¤ì¤Þ¤¹:! case do done elif else esac fi for function if in select then until while { } time [[ ]]
¥·¥§¥ë¤Îʸˡ
ñ½ã¤Ê¥³¥Þ¥ó¥É (Simple Commands)
ñ½ã¤Ê¥³¥Þ¥ó¥É (simple command) ¤È¤Ï¡¢ ÊÑ¿ô¤ÎÂåÆþ¤òʤ٤¿¤â¤Î (¤³¤ì¤Ï¾Êά²Äǽ¤Ç¤¹) ¤Î¸å¤Ë¡¢ ¥Ö¥é¥ó¥¯¶èÀÚ¤ê¤Îñ¸ì¤È¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤òµ½Ò¤·¡¢ ºÇ¸å¤ËÀ©¸æ±é»»»Ò¤òÃÖ¤¤¤¿¤â¤Î¤Ç¤¹¡£ ºÇ½é¤Îñ¸ì¤Ï¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É¤ò»ØÄꤷ¤Þ¤¹¡£ »Ä¤ê¤Îñ¸ì¤Ïµ¯Æ°¤µ¤ì¤ë¥³¥Þ¥ó¥É¤Ë°ú¤¿ô¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡£
ñ½ã¤Ê¥³¥Þ¥ó¥É¤ÎÊÖ¤êÃͤϥ³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤Ç¤¹¤¬¡¢¥·¥°¥Ê¥ë n ¤ò¼õ¤±¤Æ¥³¥Þ¥ó¥É¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï 128+n ¤È¤Ê¤ê¤Þ¤¹¡£
¥Ñ¥¤¥×¥é¥¤¥ó (Pipeline)
¥Ñ¥¤¥×¥é¥¤¥ó (pipeline)¤Ï¡¢µ¹æ | ¤Ç¶èÀڤä¿ 1 ¤Ä°Ê¾å¤Î¥³¥Þ¥ó¥ÉÎó¤Ç¤¹¡£ ¥Ñ¥¤¥×¥é¥¤¥ó¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹:
[time [-p]] [ ! ] command [ | command2 ... ]
command ¤Îɸ½à½ÐÎÏ¤Ï command2 ¤Îɸ½àÆþÎϤËÀܳ¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÀܳ¤Ï¡¢ ¥³¥Þ¥ó¥É¤Ç»ØÄꤷ¤¿¤É¤Î¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤è¤ê¤âÀè¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹ (¸å½Ò¤Î ¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó ¤ò»²¾È)¡£
¥Ñ¥¤¥×¥é¥¤¥ó¤ÎÁ°¤Ë¡¢Í½Ìó¸ì¤Ç¤¢¤ë ! ¤¬¤¢¤ë¾ì¹ç¡¢ ¤½¤Î¥Ñ¥¤¥×¥é¥¤¥ó¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÏºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÎÏÀÍýÃͤΠNOT ¤ò¼è¤Ã¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢ ¥Ñ¥¤¥×¥é¥¤¥ó¤Î¥¹¥Æ¡¼¥¿¥¹¤ÏºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ ÃͤòÊÖ¤¹Á°¤Ë¡¢¥·¥§¥ë¤Ï¥Ñ¥¤¥×¥é¥¤¥óÃæ¤ÎÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£
¥Ñ¥¤¥×¥é¥¤¥ó¤ÎÁ°¤ËͽÌó¸ì time ¤¬¤¢¤ë¾ì¹ç¡¢¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤Ë¤«¤«¤Ã¤¿ ·Ð²á»þ´Ö¡¦¥æ¡¼¥¶»þ´Ö¡¦¥·¥¹¥Æ¥à»þ´Ö¤¬¥Ñ¥¤¥×¥é¥¤¥ó¤Î½ªÎ»»þ¤ËÊó¹ð¤µ¤ì¤Þ¤¹¡£ -p ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤È¡¢ ½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤¬ POSIX »ÅÍͤËÊѤï¤ê¤Þ¤¹¡£ ÊÑ¿ô TIMEFORMAT ¤Ë¤Ï¡¢·Ð²á»þ´Ö¾ðÊó¤Îɽ¼¨¤Î»ÅÊý¤ò»ØÄꤹ¤ë¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ò ÀßÄê¤Ç¤¤Þ¤¹ (¸å½Ò¤Î ¥·¥§¥ëÊÑ¿ô ¤Î¹à¤Î TIMEFORMAT ¤Ë´Ø¤¹¤ëÀâÌÀ¤ò»²¾È)¡£
¥Ñ¥¤¥×¥é¥¤¥óÃæ¤Î³Æ¥³¥Þ¥ó¥É¤Ï¡¢¤½¤ì¤¾¤ìÊÌ¤Î¥×¥í¥»¥¹¤È¤·¤Æ (¤Ä¤Þ¤ê¥µ¥Ö¥·¥§¥ëÆâ¤Ç) ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
¥ê¥¹¥È
¥ê¥¹¥È (list) ¤È¤Ï¡¢1¤Ä°Ê¾å¤Î¥Ñ¥¤¥×¥é¥¤¥ó¤ò±é»»»Ò ;, &, &&, || ¤Î¤¤¤º¤ì¤«¤Ç¶èÀڤäÆÊ¤١¢ºÇ¸å¤Ë ;, &, <newline> ¤Î¤¤¤º¤ì¤« (¤³¤ì¤Ï¾Êά²Äǽ¤Ç¤¹) ¤òÃÖ¤¤¤¿¤â¤Î¤Ç¤¹¡£
¥ê¥¹¥È±é»»»Ò¤Î¤¦¤Á¡¢ && ¤È || ¤ÎÍ¥Àè½ç°Ì¤ÏƱ¤¸¤Ç¤¹¡£¤³¤ì¤é¤Î¼¡¤Ë¡¢ ; ¤È & ¤¬Æ±¤¸Í¥Àè½ç°Ì¤Ç³¤¤Þ¤¹¡£
¥³¥Þ¥ó¥É¤¬À©¸æ±é»»»Ò & ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥§¥ë¤Ï¥³¥Þ¥ó¥É¤ò¥µ¥Ö¥·¥§¥ëÆâ¤Ç ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É (background) ¤Ç¼Â¹Ô¤·¤Þ¤¹¡£ ¥·¥§¥ë¤Ï¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤¿¤º¤Ë¡¢Êֵѥ¹¥Æ¡¼¥¿¥¹ 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¤ò ; ¤Ç¶èÀڤ俾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤é¤Ï½çÈ֤˼¹Ԥµ¤ì¤Þ¤¹¡£ ¥·¥§¥ë¤Ï¤½¤ì¤¾¤ì¤Î¥³¥Þ¥ó¥É¤¬½ªÎ»¤¹¤ë¤Î¤ò½çÈÖ¤ËÂÔ¤Á¤Þ¤¹¡£ Êֵѥ¹¥Æ¡¼¥¿¥¹¤Ï¡¢ºÇ¸å¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
À©¸æ±é»»»Ò && ¤Ï AND ¥ê¥¹¥È¤ò¼¨¤·¡¢ || ¤Ï OR ¥ê¥¹¥È¤ò¼¨¤·¤Þ¤¹¡£ AND ¥ê¥¹¥È¤Ï
command1 && command2
¤È¤¤¤¦·Á¼°¤Ç¤¢¤ê¡¢ command1 ¤¬½ªÎ»¥¹¥Æ¡¼¥¿¥¹ 0 ¤òÊÖ¤·¤¿¾ì¹ç¤Ë¸Â¤ê command2 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
OR ¥ê¥¹¥È¤Ï
command1 || command2
¤È¤¤¤¦·Á¼°¤Ç¤¢¤ê¡¢ command1 ¤¬ 0 °Ê³°¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤¿¾ì¹ç¤Ë¸Â¤ê command2 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£AND ¥ê¥¹¥È¤È OR ¥ê¥¹¥È¤ÎÊֵѥ¹¥Æ¡¼¥¿¥¹¤Ï¡¢ ¥ê¥¹¥ÈÃæ¤ÇºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¹¡£
Ê£¹ç¥³¥Þ¥ó¥É(Compound Commands)
Ê£¹ç¥³¥Þ¥ó¥É (compound command) ¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹:
- (list)
- list ¤Ï¥µ¥Ö¥·¥§¥ëÆâ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¥·¥§¥ë¤Î´Ä¶¤Ë±Æ¶Á¤òÍ¿¤¨¤ë¤è¤¦¤ÊÊÑ¿ô¤ÎÂåÆþ¤äÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ï¡¢ ¥³¥Þ¥ó¥É¤Î½ªÎ»¸å¤Ë±Æ¶Á¤ò»Ä¤·¤Þ¤»¤ó¡£ Êֵѥ¹¥Æ¡¼¥¿¥¹¤Ï list ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¹¡£
- { list; }
- list ¤¬Ã±¤Ë¸½ºß¤Î¥·¥§¥ë´Ä¶¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ list ¤ÎºÇ¸å¤Ï²þ¹Ôʸ»ú¤«¥»¥ß¥³¥í¥ó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï ¥°¥ë¡¼¥×¥³¥Þ¥ó¥É(group command) ¤È¸Æ¤Ð¤ì¤Þ¤¹¡£Êֵѥ¹¥Æ¡¼¥¿¥¹¤Ï list ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¹¡£
- ((expression))
- expression ¤¬¸å½Ò¤Î »»½Ñ¼°É¾²Á ¤ÇÀâÌÀ¤µ¤ì¤ëµ¬Â§¤Ë½¾¤Ã¤ÆÉ¾²Á¤µ¤ì¤Þ¤¹¡£ ¼°¤ÎÃͤ¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢Êֵѥ¹¥Æ¡¼¥¿¥¹¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢ ÊÖ¤µ¤ì¤ë¥¹¥Æ¡¼¥¿¥¹¤Ï 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï let "expression" ¤ÈÁ´¤¯Æ±¤¸¤â¤Î¤Ç¤¹¡£
- [[ expression ]]
- ¾ò·ï¼° expression ¤Îɾ²ÁÃͤ˽¾¤Ã¤Æ 0 ¤Þ¤¿¤Ï 1 ¤òÊÖ¤·¤Þ¤¹¡£ ¼°¤Ï¸å½Ò¤Î ¾ò·ï¼° ¤ÇÀâÌÀ¤¹¤ë¡¢¥×¥é¥¤¥Þ¥ê¤Ë¤è¤Ã¤Æ¹½À®¤µ¤ì¤Þ¤¹¡£ ñ¸ìʬ³ä¤È¥Ñ¥¹Ì¾Å¸³«¤Ï [[ ¤È ]] ¤Î´Ö¤Îñ¸ì¤ËÂФ·¤Æ¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£ ¥Á¥ë¥ÀŸ³«¡¢¥Ñ¥é¥á¡¼¥¿¤ÈÊÑ¿ô¤ÎŸ³«¡¢»»½Ñ¼°Å¸³«¡¢¥³¥Þ¥ó¥ÉÃÖ´¹¡¢ ¥×¥í¥»¥¹ÃÖ´¹¡¢¥¯¥©¡¼¥È½üµî¤Ï¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
== ±é»»»Ò¤È != ±é»»»Ò¤¬»È¤ï¤ì¤¿¤È¤¡¢ ±é»»»Ò¤Î±¦¤Îʸ»úÎó¤Ï¥Ñ¥¿¡¼¥ó¤È²ò¼á¤µ¤ì¡¢ ¸å½Ò¤Î¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°¤ÇÀâÌÀ¤¹¤ëµ¬Â§¤Ë½¾¤Ã¤Æ¥Þ¥Ã¥Á¥ó¥°¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ʸ»úÎ󤬥ѥ¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ì¤ÐÊÖ¤êÃÍ¤Ï 0 ¤Ç¤¢¤ê¡¢ ¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤ÐÊÖ¤êÃÍ¤Ï 1 ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥Ñ¥¿¡¼¥ó¤ÎǤ°Õ¤ÎÉôʬ¤ò¥¯¥©¡¼¥È¤·¤Æ¡¢Ê¸»úÎó¤È¤·¤Æ¥Þ¥Ã¥Á¤µ¤»¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¼°¤Ï°Ê²¼¤Î±é»»»Ò¤ò»È¤Ã¤Æ·Ò¤²¤é¤ì¤Þ¤¹¡£ °Ê²¼¤Ë±é»»»Ò¤òÍ¥ÀèÅ٤νç¤Ë¼¨¤·¤Þ¤¹:
-
- ( expression )
- expression ¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£¤³¤ì¤òÍѤ¤¤Æ¡¢ ±é»»»Ò¤ÎÄ̾ï¤ÎÍ¥ÀèÅÙ¤òÊѹ¹¤Ç¤¤Þ¤¹¡£
- ! expression
- expression ¤¬µ¶¤Ê¤é¤Ð¿¿¤Ë¤Ê¤ê¤Þ¤¹¡£
- expression1 && expression2
- expression1 ¤È expression2 ¤¬Î¾Êý¤È¤â¿¿¤Ç¤¢¤ì¤Ð¿¿¤Ë¤Ê¤ê¤Þ¤¹¡£
- expression1 || expression2 expression1 ¤È expression2 ¤Î¤É¤Á¤é¤«¤¬¿¿¤Ç¤¢¤ì¤Ð¿¿¤È¤Ê¤ê¤Þ¤¹¡£
-
expression1 ¤ÎÃͤÀ¤±¤Ç¾ò·ï¼°Á´ÂΤÎÊÖ¤êÃͤ¬·èÄê¤Ç¤¤ì¤Ð¡¢ && ±é»»»Ò¤È || ±é»»»Ò¤Ï expression2 ¤ò¼Â¹Ô¤·¤Þ¤»¤ó¡£
- for name [ in word ] ; do list ; done
- in ¤Ë³¤¯Ã±¸ì¤Î¥ê¥¹¥È¤¬Å¸³«¤µ¤ì¡¢Í×ÁǤΥꥹ¥È¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ ÊÑ¿ô name ¤Ë¤Ï¡¢¤³¤Î¥ê¥¹¥È¤Î³ÆÍ×ÁǤ¬½çÈ֤˥»¥Ã¥È¤µ¤ì¡¢¤½¤ÎÅÙ¤Ë list ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¡Öin word¡×¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢ for ¥³¥Þ¥ó¥É¤Ï¡¢ÀßÄꤵ¤ì¤Æ¤¤¤ë°ÌÃ֥ѥé¥á¡¼¥¿¤½¤ì¤¾¤ì¤ËÂФ·¤Æ list ¤ò°ìÅÙ¤º¤Ä¼Â¹Ô¤·¤Þ¤¹(¸å½Ò¤Î ¥Ñ¥é¥á¡¼¥¿ ¤ò»²¾È)¡£ Êֵѥ¹¥Æ¡¼¥¿¥¹¤Ï¼Â¹Ô¤µ¤ì¤¿ºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ in ¤Ë³¤¯Í×ÁǤòŸ³«¤·¤¿·ë²Ì¤¬¶õ¤È¤Ê¤Ã¤¿¾ì¹ç¡¢ ¥³¥Þ¥ó¥É¤ÏÁ´¤¯¼Â¹Ô¤µ¤ì¤º¡¢Êֵѥ¹¥Æ¡¼¥¿¥¹ 0 ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
- for (( expr1 ; expr2 ; expr3 )) ; do list ; done
- ºÇ½é¤Ë¡¢»»½Ñ¼°expr1¤¬¡¢¸å½Ò¤Î »»½Ñ¼°É¾²Á ¤ÇÀâÌÀ¤µ¤ì¤ëµ¬Â§¤Ë½¾¤Ã¤ÆÉ¾²Á¤µ¤ì¤Þ¤¹¡£ ¼¡¤Ë¡¢»»½Ñ¼°expr2¤¬¥¼¥í¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤·É¾²Á¤µ¤ì¤Þ¤¹¡£ »»½Ñ¼°expr2¤Îɾ²Á·ë²Ì¤¬¥¼¥í¤Ç¤Ê¤±¤ì¤Ð¡¢¤½¤ÎÅÙËè¤Ëlist¤¬¼Â¹Ô¤µ¤ì¡¢ »»½Ñ¼°expr3¤¬É¾²Á¤µ¤ì¤Þ¤¹¡£ ¤É¤Î»»½Ñ¼°¤â¾Êά¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ ɾ²Á·ë²Ì¤¬ 1 ¤È¤ß¤Ê¤µ¤ì¤¿¾ì¹ç¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¤¤Þ¤¹¡£ Êֵѥ¹¥Æ¡¼¥¿¥¹¤Ï list Ãæ¤Ç¼Â¹Ô¤µ¤ì¤¿ ºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤È¤Ê¤ê¤Þ¤¹¤¬¡¢ »»½Ñ¼°¤Î¤¤¤º¤ì¤«¤¬Ìµ¸ú¤Ç¤¢¤ë¾ì¹ç¤Ë¤ÏÉÔÀµ¤ÊÃͤȤʤê¤Þ¤¹¡£
- select name [ in word ] ; do list ; done
- in ¤Ë³¤¯Ã±¸ì¤Î¥ê¥¹¥È¤¬Å¸³«¤µ¤ì¡¢Í×ÁǤΥꥹ¥È¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ Ÿ³«¤µ¤ì¤¿Ã±¸ì¤Î½¸¹ç¤¬ÈÖ¹æÉÕ¤¤Çɸ½à¥¨¥é¡¼½ÐÎϤ˽ÐÎϤµ¤ì¤Þ¤¹¡£ ¡Öin word¡×¤¬¾Êά¤µ¤ì¤¿¾ì¹ç¡¢ °ÌÃ֥ѥé¥á¡¼¥¿¤¬½ÐÎϤµ¤ì¤Þ¤¹ (¸å½Ò¤Î ¥Ñ¥é¥á¡¼¥¿ ¤ò»²¾È)¡£Â³¤¤¤Æ PS3 ¤¬É½¼¨¤µ¤ì¡¢É¸½àÆþÎϤ«¤é 1 ¹Ô¤ÎÆÉ¤ß¹þ¤ß¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ɽ¼¨¤µ¤ì¤¿Ã±¸ì¤Î¤¤¤º¤ì¤«¤ËÂбþ¤¹¤ë¿ô»ú¤¬¤³¤Î¹Ô¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¡¢ name ¤ÎÃͤȤ·¤Æ¤½¤Îñ¸ì¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ¹Ô¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢Ã±¸ì¤È¥×¥í¥ó¥×¥È¤¬ºÆ¤Óɽ¼¨¤µ¤ì¤Þ¤¹¡£ EOF ¤òÆÉ¤ß¹þ¤à¤È¥³¥Þ¥ó¥É¤¬½ªÎ»¤·¤Þ¤¹¡£ ¤³¤ì°Ê³°¤ÎÃͤξì¹ç¤Ë¤Ï¡¢ name ¤Ë¤Ï¶õʸ»úÎó¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ÆÉ¤ß¹þ¤ó¤À¹Ô¤ÏÊÑ¿ô REPLY ¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ break ¤Þ¤¿¤Ï return ¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤Þ¤Ç¡¢ÁªÂò¤ò¹Ô¤¦¤¿¤Ó¤Ë list ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ select ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï¡¢ list Ãæ¤ÇºÇ¸å¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¹¤¬¡¢ ¥³¥Þ¥ó¥É¤¬Á´¤¯¼Â¹Ô¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï 0 ¤È¤Ê¤ê¤Þ¤¹¡£
- case word in [ [(] pattern [ | pattern ]
- case ¥³¥Þ¥ó¥É¤ÏºÇ½é¤Ë word ¤òŸ³«¤·¡¢¤½¤ì¤¾¤ì¤Î pattern ¤ËÂФ·¤Æ½ç¤Ë¥Þ¥Ã¥Á¥ó¥°¤ò»î¤ß¤Þ¤¹¡£ ¥Þ¥Ã¥Á¥ó¥°¤ÎºÝ¤Ë¤Ï¥Ñ¥¹Ì¾Å¸³« (¸å½Ò¤Î ¥Ñ¥¹Ì¾Å¸³« ¤ò»²¾È) ¤ÈƱ¤¸µ¬Â§¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£ ¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤ë¤È¡¢¤³¤ì¤ËÂбþ¤¹¤ë list ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤ì°Ê¹ß¤Î¥Þ¥Ã¥Á¥ó¥°¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£ ¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤¬Ìµ¤±¤ì¤Ð¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤¬¤¢¤Ã¤¿¤é¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï list Ãæ¤ÇºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
- if list; then list; [ elif list; then list; ] ... [ else list; ] fi
- ºÇ½é¤Ë if list ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¤³¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ 0 ¤Ê¤é¤Ð¡¢then list ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð elif list ¤¬¤½¤ì¤¾¤ì½çÈ֤˼¹Ԥµ¤ì¡¢ ¤³¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ 0 ¤Ê¤é¤Ð¡¢Âбþ¤¹¤ë then list ¤¬¼Â¹Ô¤µ¤ì¡¢¥³¥Þ¥ó¥É¤¬½ªÎ»¤·¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢else list ¤¬ (¤â¤·Â¸ºß¤¹¤ì¤Ð) ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ÏºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¹¤¬¡¢ ¿¿¤Èɾ²Á¤µ¤ì¤¿¾ò·ï¤¬Á´¤¯Ìµ¤¤¾ì¹ç¤Ë¤Ï 0 ¤È¤Ê¤ê¤Þ¤¹¡£
- while list; do list; done
- until list; do list; done
- while ¥³¥Þ¥ó¥É¤Ï¡¢list Ãæ¤ÎºÇ¸å¤Î¥³¥Þ¥ó¥É¤¬½ªÎ»¥¹¥Æ¡¼¥¿¥¹ 0 ¤òÊÖ¤¹¤Þ¤Ç¡¢·«¤êÊÖ¤·¤Æ do list ¤ò¼Â¹Ô¤·¤Þ¤¹¡£until ¥³¥Þ¥ó¥É¤Ï while ¥³¥Þ¥ó¥É¤È¤Û¤ÜƱ¤¸¤Ç¤¹¤¬¡¢ ɾ²Á¤Î¾ò·ï¤¬ÈÝÄê¤È¤Ê¤ëÅÀ¤¬°Û¤Ê¤ê¤Þ¤¹¡£ do list ¤Ï¡¢ list Ãæ¤ÎºÇ¸å¤Î¥³¥Þ¥ó¥É¤¬ 0 °Ê³°¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¸Â¤ê¤º¤Ã¤È¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ while ¥³¥Þ¥ó¥É¤È until ¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï¡¢ do list ¤Ç¼Â¹Ô¤µ¤ì¤¿ºÇ¸å¤Î¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢ ¥³¥Þ¥ó¥É¤¬Á´¤¯¼Â¹Ô¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£
- [ function ] name () { list; }
- name ¤È¤¤¤¦Ì¾Á°¤Î´Ø¿ô¤òÄêµÁ¤·¤Þ¤¹¡£´Ø¿ô¤ÎËÜÂÎ(body)¤Ï¡¢ { ¤È } ¤Ç°Ï¤Þ¤ì¤¿¥³¥Þ¥ó¥É¤Î ¥ê¥¹¥È ¤Ç¤¹¡£Ã±½ã¤Ê¥³¥Þ¥ó¥É¤Î̾Á°¤È¤·¤Æ name ¤¬»ØÄꤵ¤ì¤ë¤È¡¢ ɬ¤º¤³¤Î¥ê¥¹¥È¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ´Ø¿ô¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï¡¢ ´Ø¿ôËÜÂΤǺǸå¤Ë¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¤¹ (¸å½Ò¤Î ´Ø¿ô ¤ò»²¾È)¡£
¥³¥á¥ó¥È (COMMENTS)
¥·¥§¥ë¤¬ÂÐÏÃŪ¤Ç¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤ÏÂÐÏÃŪ¤Ê¥·¥§¥ë¤Ë¤ª¤¤¤Æ ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î shopt ¤ËÂФ¹¤ë interactive_comments ¥ª¥×¥·¥ç¥ó¤¬Í¸ú¤È¤Ê¤Ã¤Æ¤¤¤ë (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È¤¹¤ë¤³¤È) ¾ì¹ç¤Ë¤Ï¡¢ # ¤Ç»Ï¤Þ¤ëñ¸ì¤¬¤¢¤ë¤È¡¢¤½¤Îñ¸ì¤È¤½¤Î¹Ô¤Î»Ä¤ê¤Îʸ»ú¤¬Á´¤ÆÌµ»ë¤µ¤ì¤Þ¤¹¡£ ÂÐÏÃ¥·¥§¥ë¤Ç¤Ï¡¢ interactive_comments ¥ª¥×¥·¥ç¥ó¤¬Í¸ú¤Ç¤Ê¤±¤ì¤Ð¥³¥á¥ó¥È¤Ï»È¤¨¤Þ¤»¤ó¡£ÂÐÏÃ¥·¥§¥ë¤Ç¤Ï¡¢ interactive_comments ¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç͸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¥¯¥©¡¼¥È
¥¯¥©¡¼¥È (quoting) ¤ò»È¤¦¤È¡¢ ÆÃÄê¤Îʸ»ú¤äñ¸ì¤Î¥·¥§¥ë¤ËÂФ¹¤ëÆÃÊ̤ʰÕÌ£¤ò¼è¤ê½ü¤±¤Þ¤¹¡£ ¥¯¥©¡¼¥È¤òÍѤ¤¤ë¤È¡¢ÆÃ¼ìʸ»ú¤ÎÆÃ¼ì¤Ê°·¤¤¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤ä¡¢ ͽÌó¸ì¤¬Í½Ìó¸ì¤È¤·¤Æ¼±Ê̤µ¤ì¤ë¤³¤È¤òËɤ¤¤À¤ê¡¢ ¥Ñ¥é¥á¡¼¥¿¤ÎŸ³«¤òËɤ²¤Þ¤¹¡£Á°½Ò¤Î ÄêµÁ ¤Çµó¤²¤¿¥á¥¿Ê¸»ú (metacharacters) ¤Ë¤Ï¤½¤ì¤¾¤ìÆÃ¼ì¤Ê°ÕÌ£¤¬¤¢¤ë¤Î¤Ç¡¢ ¤½¤Îʸ»ú¼«¿È¤òɽ¤¹¤¿¤á¤Ë¤Ï¥¯¥©¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¥³¥Þ¥ó¥ÉÍúÎòŸ³«µ¡Ç½¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ÍúÎò¤ÎŸ³«¤òËɤ°¤¿¤á¤Ë¤Ï¡¢ ÍúÎòŸ³« (history expansion) ʸ»ú (ÉáÄÌ !) ¤ò¥¯¥©¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¥¯¥©¡¼¥È¤ÎÊýË¡¤Ë¤Ï¡¢ ¥¨¥¹¥±¡¼¥×ʸ»ú(escape character), ¥·¥ó¥°¥ë¥¯¥©¡¼¥È¡¢¥À¥Ö¥ë¥¯¥©¡¼¥È¤Î 3 ¼ïÎब¤¢¤ê¤Þ¤¹¡£
¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\) ¤Ï ¥¨¥¹¥±¡¼¥×ʸ»ú ¤Ç¤¹¡£¥¨¥¹¥±¡¼¥×ʸ»ú¤Ï <newline> ¤È¤¤¤¦Îã³°¤ò½ü¤¡¢ ¸å¤Ë³¤¯Ê¸»ú 1 ¤Ä¤Îʸ»ú¤È¤·¤Æ¤ÎÃͤòÊÝ»ý¤µ¤»¤Þ¤¹¡£ \<newline> ¤È¤¤¤¦Áȹ礻¤¬¸½¤ï¤ì¡¢ ¤«¤Ä¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¼«¿È¤¬¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ \<newline> ¤Ï¹Ô¤ò·Ñ³¤¹¤ë¤³¤È¤òɽ¤·¤Þ¤¹ (¤Ä¤Þ¤ê¡¢ÆþÎÏ¥¹¥È¥ê¡¼¥à¤«¤é²þ¹Ôʸ»ú¤¬ºï½ü¤µ¤ì¡¢¼Â¼ÁŪ¤Ë̵»ë¤µ¤ì¤Þ¤¹)¡£
¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤Çʸ»ú¤ò°Ï¤à¤È¡¢ ¥¯¥©¡¼¥ÈÆâÉô¤Î¤½¤ì¤¾¤ì¤Îʸ»ú¤Ïʸ»ú¤È¤·¤Æ¤ÎÃͤòÊÝ»ý¤·¤Þ¤¹¡£ ¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤Î´Ö¤Ë¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤òÃÖ¤¯¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ¤³¤ì¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÁ°¤ËÉÕ¤±¤Æ¤âƱ¤¸¤Ç¤¹¡£
¥À¥Ö¥ë¥¯¥©¡¼¥È¤Çʸ»ú¤ò°Ï¤à¤È¥¯¥©¡¼¥ÈÆâÉô¤ÎÁ´¤Æ¤Îʸ»ú¤Ïʸ»ú¤È¤·¤Æ¤ÎÃͤò ÊÝ»ý¤·¤Þ¤¹¤¬¡¢ $, `, \ ¤ÏÎã³°¤È¤Ê¤ê¤Þ¤¹¡£ $ ¤È ` ¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤Ç¤âÆÃ¼ì¤Ê°ÕÌ£¤ò¼º¤¤¤Þ¤»¤ó¡£ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Î¾ì¹ç¤Ï¡¢¼¡¤Îʸ»ú¤¬ $, `, ", \, <newline> ¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë¾ì¹ç¤Ë¸Â¤êÆÃ¼ì¤Ê°ÕÌ£¤ò¼º¤¤¤Þ¤»¤ó¡£ Á°¤Ë¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤òÉÕ¤±¤ì¤Ð¡¢ ¥À¥Ö¥ë¥¯¥©¡¼¥Èʸ»ú¤ò¥À¥Ö¥ë¥¯¥©¡¼¥È¤Ë¤è¤ë¥¯¥©¡¼¥È¤ÎÆâÉô¤Ç ¥¯¥©¡¼¥È¤Ç¤¤Þ¤¹¡£
ÆÃ¼ì¤Ê¥Ñ¥é¥á¡¼¥¿¤Ç¤¢¤ë * ¤È @ ¤Ï¡¢¥À¥Ö¥ë¥¯¥©¡¼¥ÈÆâÉô¤Ç¤âÆÃ¼ì¤Ê°ÕÌ£¤ò¼º¤¤¤Þ¤»¤ó (¸å½Ò¤Î ¥Ñ¥é¥á¡¼¥¿ ¤ò»²¾È)¡£
$'string' ¤Î·Á¼°¤ò»ý¤Äñ¸ì¤ÏÆÃ¼ì¤Ê°·¤¤¤ò¼õ¤±¤Þ¤¹¡£ ¤³¤Îñ¸ì¤Ï string ¤ËŸ³«¤µ¤ì¡¢ ¤½¤ì¤«¤é ANSI C ɸ½à¤Ç»ÅÍͤ¬·è¤á¤é¤ì¤Æ¤¤¤ë¡¢ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤ëʸ»ú¤ËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï¡¢ (¤â¤·Â¸ºß¤¹¤ì¤Ð) °Ê²¼¤Î¤è¤¦¤Ë¥Ç¥³¡¼¥É¤µ¤ì¤Þ¤¹:
-
- \a
- ·Ù¹ð (¥Ù¥ë)
- \b
- ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹
- \e
- ¥¨¥¹¥±¡¼¥×ʸ»ú
- \f
- ¥Õ¥©¡¼¥à¥Õ¥£¡¼¥Éʸ»ú
- \n
- ²þ¹Ôʸ»ú
- \r
- Éüµ¢Ê¸»ú
- \t
- ¿åÊ¿¥¿¥Öʸ»ú
- \v
- ¿âľ¥¿¥Öʸ»ú
- \\
- ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å
- \'
- ¥·¥ó¥°¥ë¥¯¥©¡¼¥È
- \nnn
- ASCII ¥³¡¼¥É¤Î 8 ¿ÊÃͤ¬ nnn ¤Ç¤¢¤ëʸ»ú (1 ʸ»ú¤Ë¤Ä¤¿ô»ú 3 ·å)¡£
- \xnnn
- ASCII ¥³¡¼¥É¤Î 16 ¿ÊÃͤ¬ nnn ¤Ç¤¢¤ëʸ»ú (1 ʸ»ú¤Ë¤Ä¤¿ô»ú 3 ·å)¡£
Ÿ³«¤µ¤ì¤¿·ë²Ì¤Ï¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸¾õÂ֤ǡ¢ ¥É¥ëµ¹æ¤Ï¸ºß¤·¤Ê¤«¤Ã¤¿¤«¤Î¤è¤¦¤Ë°·¤ï¤ì¤Þ¤¹¡£
¥À¥Ö¥ë¥¯¥©¡¼¥È¤µ¤ì¤¿Ê¸»úÎó¤ÎÁ°¤Ë¥É¥ëµ¹æ($)¤¬¤¢¤ë¤È¡¢ ʸ»úÎó¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Ë½¾¤Ã¤ÆÊÑ´¹¤µ¤ì¤Þ¤¹¡£ ¸½ºß¤Î¥í¥±¡¼¥ë¤¬ C ¤Þ¤¿¤Ï POSIX ¤Ê¤é¤Ð¡¢ ¥É¥ëµ¹æ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£Ê¸»úÎó¤¬ÊÑ´¹¤µ¤ì¤¿¤êÃÖ´¹¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Î·ë²Ì¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸¾õÂ֤ˤʤê¤Þ¤¹¡£
¥Ñ¥é¥á¡¼¥¿
¥Ñ¥é¥á¡¼¥¿ (parameter) ¤ÏÃͤòÊÝ»ý¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¥Ñ¥é¥á¡¼¥¿¤Ï ̾Á°¡¢ ¿ô»ú¡¢¸å½Ò¤Î ÆÃ¼ì¤Ê¥Ñ¥é¥á¡¼¥¿ ¤Çµó¤²¤ëÆÃ¼ìʸ»ú¤Î¤¤¤º¤ì¤«¤Çɽ¸½¤µ¤ì¤Þ¤¹¡£¥·¥§¥ë¤Ç¤ÎÍÑË¡¤Ë¤ª¤¤¤Æ¤Ï¡¢ ÊÑ¿ô(variable) ¤È¤Ï ̾Á° ¤Çɽ¸½¤µ¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤Ç¤¹¡£¥Ñ¥é¥á¡¼¥¿¤ËÃͤ¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢ ¤½¤Î¥Ñ¥é¥á¡¼¥¿¤ÏÀßÄê (set) ¤µ¤ì¤Æ¤¤¤ë¤È¸À¤ï¤ì¤Þ¤¹¡£ ¶õʸ»úÎó¤â͸ú¤ÊÃͤǤ¹¡£°ìÅÙÃͤòÀßÄꤹ¤ë¤È¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î unset ¤ò»È¤ï¤Ê¤±¤ì¤ÐÀßÄê¤ò¼è¤ê¾Ã¤¹ (unset ¤¹¤ë) ¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È)¡£
ÊÑ¿ô ¤Ë¤Ï¡¢°Ê²¼¤Î¹½Ê¸¤ÇÂåÆþ¤Ç¤¤Þ¤¹:
name=[value]
value ¤¬Í¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ÊÑ¿ô¤Ë¤Ï¶õʸ»úÎó¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£Á´¤Æ¤Î value ¤ËÂФ·¤Æ¡¢¥Á¥ë¥ÀŸ³«¡¢¥Ñ¥é¥á¡¼¥¿¤ÈÊÑ¿ô¤ÎŸ³«¡¢¥³¥Þ¥ó¥ÉÃÖ´¹¡¢ »»½Ñ¼°Å¸³«¡¢¥¯¥©¡¼¥È½üµî¤¬¹Ô¤ï¤ì¤Þ¤¹ (¸å½Ò¤Î Ÿ³« ¤ò»²¾È)¡£ÊÑ¿ô¤Î À°¿ô °À¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È)¡¢$((...)) ¤ÎŸ³«¤ò»È¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â value ¤ËÂФ·¤Æ¤Î»»½ÑŸ³«¤¬¹Ô¤ï¤ì¤Þ¤¹ (¸å½Ò¤Î »»½Ñ¼°Å¸³« ¤ò»²¾È)¡£ ÆÃ¼ì¥Ñ¥é¥á¡¼¥¿ ¤Ç¸å½Ò¤¹¤ë "$@" ¤È¤¤¤¦Îã³°¤ò½ü¤¤¤Æ¡¢Ã±¸ì¤Îʬ³ä¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£ ¥Ñ¥¹Ì¾Å¸³«¤â¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£
°ÌÃ֥ѥé¥á¡¼¥¿(Positional Parameters)
°ÌÃ֥ѥé¥á¡¼¥¿ (positional parameter) ¤Ï¡¢1 ·å°Ê¾å¤Î¿ôÃͤÇɽ¤µ¤ì¤ë¥Ñ¥é¥á¡¼¥¿¤Ç¤¹¡£¤¿¤À¤· 0 ¤Ï´Þ¤ß¤Þ¤»¤ó¡£ °ÌÃ֥ѥé¥á¡¼¥¿¤Ï¡¢¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤¿¤È¤¤Ë¥·¥§¥ë¤Î°ú¤¿ô¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¤¬¡¢ ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î set ¤ò»È¤Ã¤ÆÂåÆþ¤·Ä¾¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ÂåÆþʸ¤ò»È¤Ã¤Æ°ÌÃ֥ѥé¥á¡¼¥¿¤Ø¤ÎÂåÆþ¤ò¹Ô¤¦¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ¥·¥§¥ë´Ø¿ô¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢ °ÌÃ֥ѥé¥á¡¼¥¿¤Ï°ì»þŪ¤ËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹ (¸å½Ò¤Î ´Ø¿ô ¤ò»²¾È)¡£
2 ·å°Ê¾å¤Î¿ôÃͤò´Þ¤à°ÌÃ֥ѥé¥á¡¼¥¿¤òŸ³«¤¹¤ë¤È¤¤Ë¤Ï¡¢¥Ö¥ì¡¼¥¹ ({}) ¤Ç°Ï¤Þ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó (¸å½Ò¤Î Ÿ³« ¤ò»²¾È)¡£
ÆÃ¼ì¥Ñ¥é¥á¡¼¥¿
¥·¥§¥ë¤Ï¤¤¤¯¤Ä¤«¤Î¥Ñ¥é¥á¡¼¥¿¤òÆÃḚ̂·¤¤¤·¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¥Ñ¥é¥á¡¼¥¿¤Ï»²¾È¤µ¤ì¤ë¤À¤±¤Ç¤¢¤ê¡¢ ÃͤòÂåÆþ¤¹¤ë¤³¤È¤Ïµö¤µ¤ì¤Þ¤»¤ó¡£
- *
- (1 ¤«¤é»Ï¤Þ¤ë) Á´¤Æ¤Î°ÌÃ֥ѥé¥á¡¼¥¿¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤ÇŸ³«¤¬¹Ô¤ï¤ì¤¿¤È¤¤Ï¡¢ ¤½¤ì¤¾¤ì¤Î¥Ñ¥é¥á¡¼¥¿¤òÆÃÊ̤ÊÊÑ¿ô¤Ç¤¢¤ë IFS ¤ÎºÇ½é¤Îʸ»ú¤Ç¶èÀڤäÆÊ¤٤¿ 1 ¤Ä¤Îñ¸ì¤ËŸ³«¤µ¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ "$*" ¤Ï "$1c$2c..." ¤ÈƱ¤¸¤Ç¤¹¡£ ¤³¤³¤Ç c ¤ÏÊÑ¿ô IFS ¤ÎÃͤκǽé¤Îʸ»ú¤Ç¤¹¡£ IFS ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥Ñ¥é¥á¡¼¥¿¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤Þ¤¹¡£ IFS ¤¬¶õʸ»úÎó¤Î¾ì¹ç¡¢¥Ñ¥é¥á¡¼¥¿¤Î´Ö¤Ë¤Ï¶èÀÚ¤êʸ»ú¤ÏÆþ¤é¤º¡¢ Á´¤Æ¤Î¥Ñ¥é¥á¡¼¥¿¤Ï·Ò¤²¤é¤ì¤Þ¤¹¡£
- @
- (1 ¤«¤é»Ï¤Þ¤ë) Á´¤Æ¤Î°ÌÃ֥ѥé¥á¡¼¥¿¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤ÇŸ³«¤¬¹Ô¤ï¤ì¤¿¤È¤¤Ï¡¢ ¤½¤ì¤¾¤ì¤Î¥Ñ¥é¥á¡¼¥¿¤ÏÊÌ¡¹¤Îñ¸ì¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤Ä¤Þ¤ê "$@" ¤Ï "$1" "$2" ... ¤ÈƱ¤¸¤Ç¤¹¡£ °ÌÃ֥ѥé¥á¡¼¥¿¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï¡¢"$@" ¤È $@ ¤òŸ³«¤·¤Æ¤â¶õʸ»úÎó¤Ë¤Ê¤ê¤Þ¤¹ (¤Ä¤Þ¤ê¼è¤ê½ü¤«¤ì¤Þ¤¹)¡£
- #
- °ÌÃ֥ѥé¥á¡¼¥¿¤Î¸Ä¿ô¤ò¼¨¤¹ 10 ¿ÊÃͤËŸ³«¤µ¤ì¤Þ¤¹¡£
- ?
- ºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥Ñ¥¤¥×¥é¥¤¥ó¤Î ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
- -
- ¸½ºß¤Î¥ª¥×¥·¥ç¥ó¥Õ¥é¥°¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ïµ¯Æ°¤Î»þ¤Ë»ØÄꤷ¤¿¤ê¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É set ¤ÇÀßÄꤷ¤¿¤ê¡¢( -i ¥ª¥×¥·¥ç¥óÅù¤Ç) ¥·¥§¥ë¼«¿È¤¬ÀßÄꤷ¤¿¤ê¤·¤Þ¤¹¡£
- $
- ¥·¥§¥ë¤Î¥×¥í¥»¥¹ ID ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ () ¤ò»È¤Ã¤¿¥µ¥Ö¥·¥§¥ë¤ÎÆâÉô¤Ç¤Ï¡¢$ ¤Ï¥µ¥Ö¥·¥§¥ë¤Ç¤Ï¤Ê¤¯¡¢ ¸½ºß¤Î¥·¥§¥ë¤Î¥×¥í¥»¥¹ ID ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
- !
- ºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É (È󯱴ü) ¥³¥Þ¥ó¥É¤Î ¥×¥í¥»¥¹ ID ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
- 0
- ¥·¥§¥ë¤Þ¤¿¤Ï¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î̾Á°¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¥·¥§¥ë¤Î½é´ü²½»þ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¤òµ½Ò¤·¤¿¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ bash ¤òµ¯Æ°¤·¤¿¾ì¹ç¡¢ $0 ¤Ë¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ -c ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ bash ¤òµ¯Æ°¤·¤¿¾ì¹ç¡¢¼Â¹Ô¤¹¤ëʸ»úÎó¤Î¸å¤Ë°ú¤¿ô¤¬¤¢¤ì¤Ð¡¢¤½¤ÎºÇ½é¤ÎÃͤ¬ $0 ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ bash ¤òµ¯Æ°¤¹¤ë»þ¤Ë»ÈÍѤ·¤¿Ì¾Á°¤¬°ú¤¿ô 0 ¤È¤·¤ÆÍ¿¤¨¤é¤ì $0 ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
- _
- ¥·¥§¥ë¤Îµ¯Æ°»þ¤Ë¤Ï¡¢°ú¤¿ô¥ê¥¹¥È¤ÇÅϤµ¤ì¤¿¡¢ ¼Â¹Ô¤¹¤ë¥·¥§¥ë¤Þ¤¿¤Ï¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ÎÀäÂÐ¥Õ¥¡¥¤¥ë̾¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ¤½¤Î¸å¤Ï¡¢Á°¤Î¥³¥Þ¥ó¥É¤ËÂФ¹¤ëºÇ¸å¤Î°ú¤¿ô (Ÿ³«¸å¤Î¤â¤Î) ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢¼Â¹Ô¤¹¤ë³Æ¥³¥Þ¥ó¥É¤Î´°Á´¤Ê¥Õ¥¡¥¤¥ë̾¤¬ÀßÄꤵ¤ì¡¢ ¤½¤Î¥³¥Þ¥ó¥É¤Î´Ä¶¤Ë¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£ ¥á¡¼¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤È¤¤Ë¤Ï¡¢ ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¸½ºß¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¥á¡¼¥ë¤Î¥Õ¥¡¥¤¥ë̾¤òÊÝ»ý¤·¤Þ¤¹¡£
¥·¥§¥ëÊÑ¿ô
°Ê²¼¤ÎÊÑ¿ô¤Ï¥·¥§¥ë¤¬ÀßÄꤷ¤Þ¤¹:
- PPID
- ¤½¤Î¥·¥§¥ë¤Î¿Æ¤Î¥×¥í¥»¥¹ ID¡£¤³¤ÎÊÑ¿ô¤ÏÆÉ¤ß¹þ¤ßÀìÍѤǤ¹¡£
- PWD
- cd ¥³¥Þ¥ó¥É¤ÇÀßÄꤵ¤ì¤¿¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¡£
- OLDPWD
- cd ¥³¥Þ¥ó¥É¤ÇÀßÄꤵ¤ì¤¿¡¢1 ¤ÄÁ°¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¡£
- REPLY
- ÁȤ߹þ¤ß¥³¥Þ¥ó¥É read ¤Ë°ú¤¿ô¤¬Í¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿»þ¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¹Ô¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
- UID
- ¸½ºß¤Î¥æ¡¼¥¶¤Î¥æ¡¼¥¶ ID ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ½é´ü²½¤Ï¥·¥§¥ë¤Îµ¯Æ°»þ¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤ÏÆÉ¤ß¹þ¤ßÀìÍѤǤ¹¡£
- EUID
- ¸½ºß¤Î¥æ¡¼¥¶¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ½é´ü²½¤Ï¥·¥§¥ë¤Îµ¯Æ°»þ¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤ÏÆÉ¤ß¹þ¤ßÀìÍѤǤ¹¡£
- GROUPS
- ¸½ºß¤Î¥æ¡¼¥¶¤¬¥á¥ó¥Ð¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥°¥ë¡¼¥×¤Î¥ê¥¹¥È¤ò´Þ¤ó¤ÀÇÛÎóÊÑ¿ô¤Ç¤¹¡£ GROUPS ¤Ø¤ÎÂåÆþ¤Ï¸ú²Ì¤¬¤Ê¤¯¡¢¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹¡£ GROUPS ¤¬ unset ¤µ¤ì¤¿¾ì¹ç¤Ï¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ ¤½¤Î¸å¤ËºÆÀßÄꤵ¤ì¤¿¤È¤·¤Æ¤â¸µ¤ËÌá¤ê¤Þ¤»¤ó¡£
- BASH
- ¸½ºß¼Â¹Ô¤·¤Æ¤¤¤ë bash ¤òµ¯Æ°¤·¤¿¤È¤¤Ë»È¤ï¤ì¤¿¡¢´°Á´¤Ê¥Õ¥¡¥¤¥ë̾¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
- BASH_VERSION
- ¸½ºß¼Â¹Ô¤·¤Æ¤¤¤ë bash ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼¨¤¹Ê¸»úÎó¤ËŸ³«¤µ¤ì¤Þ¤¹¡£
- BASH_VERSINFO
- ÆÉ¤ß¹þ¤ßÀìÍѤÎÇÛÎóÊÑ¿ô¤Ç¡¢ÇÛÎó¤Î³ÆÍ×ÁǤϸ½ºß¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë bash ¤Î¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ÇÛÎóÊÑ¿ô¤ÎÍ×ÁǤËÂåÆþ¤µ¤ì¤ëÆâÍÆ¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹:
-
- BASH_VERSINFO[0]
- ¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ (¥ê¥ê¡¼¥¹)¡£
- BASH_VERSINFO[1]
- ¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥óÈÖ¹æ (¥Ð¡¼¥¸¥ç¥ó)¡£
- BASH_VERSINFO[2]
- ¥Ñ¥Ã¥Á¥ì¥Ù¥ë¡£
- BASH_VERSINFO[3]
- ¥Ó¥ë¥É¥Ð¡¼¥¸¥ç¥ó¡£
- BASH_VERSINFO[4]
- ¥ê¥ê¡¼¥¹¥¹¥Æ¡¼¥¿¥¹ (beta1 ¤Ê¤É)¡£
- BASH_VERSINFO[5]
- MACHTYPE ¤ÎÃÍ¡£
-
- SHLVL
- bash ¤Î¼ÂÂΤ¬µ¯Æ°¤µ¤ì¤ë¤¿¤Ó¤Ë 1 ¤º¤ÄÁý¤¨¤Þ¤¹¡£
- RANDOM
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤¬»²¾È¤µ¤ì¤ëÅ٤ˡ¢ 0 ¤«¤é 32767 ¤Þ¤Ç¤Î¥é¥ó¥À¥à¤ÊÀ°¿ô¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ RANDOM ¤ËÃͤòÂåÆþ¤¹¤ë¤È¡¢Íð¿ô¤ÎÎó¤ò½é´ü²½¤Ç¤¤Þ¤¹¡£ RANDOM ¤ò unset ¤¹¤ë¤È¡¢¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï̵¤¯¤Ê¤ê¤Þ¤¹¡£¸å¤ÇºÆ¤Ó set ¤·¤Æ¤â¸µ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
- SECONDS
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò»²¾È¤¹¤ë¤È¡¢¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤Æ¤«¤é¤ÎÉÿô¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£ SECONDS ¤ËÃͤòÂåÆþ¤·¤¿¾ì¹ç¡¢¤½¤ì°Ê¹ß¤Î»²¾È¤Ë¤ª¤¤¤ÆÊÖ¤µ¤ì¤ëÃͤϡ¢ ÂåÆþ¤µ¤ì¤¿ÃͤÈÂåÆþ°Ê¹ß¤ÎÉÿô¤ò¤·¤¿Ãͤˤʤê¤Þ¤¹¡£ SECONDS ¤ò unset ¤¹¤ë¤È¡¢¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï̵¤¯¤Ê¤ê¤Þ¤¹¡£¸å¤ÇºÆ¤Ó set ¤·¤Æ¤â¸µ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
- LINENO
- ¤³¤ÎÊÑ¿ô¤¬»²¾È¤µ¤ì¤ë¤È¡¢ ¥·¥§¥ë¤Ï¥¹¥¯¥ê¥×¥È¤ä´Ø¿ô¤Ë¤ª¤±¤ë¸½ºß¤Î¹ÔÈÖ¹æ (1¤«¤é»Ï¤Þ¤ê¤Þ¤¹) ¤òɽ¤¹ 10 ¿ÊÃͤòÂåÆþ¤·¤Þ¤¹¡£¥¹¥¯¥ê¥×¥È¤ä´Ø¿ô¤ÎÆâÉô¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ °ÕÌ£¤Î¤¢¤ëÃͤ¬ÂåÆþ¤µ¤ì¤ë¤³¤È¤ÏÊݾڤµ¤ì¤Þ¤»¤ó¡£ LINENO ¤ò unset ¤¹¤ë¤È¡¢¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï̵¤¯¤Ê¤ê¤Þ¤¹¡£¸å¤ÇºÆ¤Ó set ¤·¤Æ¤â¸µ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
- HISTCMD
- ¸½ºß¤Î¥³¥Þ¥ó¥É¤ÎÍúÎòÈÖ¹æ (ÍúÎò¥ê¥¹¥È¤Ë¤ª¤±¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹) ¤Ç¤¹¡£ HISTCMD ¤ò unset ¤¹¤ë¤È¡¢¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï̵¤¯¤Ê¤ê¤Þ¤¹¡£¸å¤ÇºÆ¤Ó set ¤·¤Æ¤â¸µ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
- FUNCNAME
- ¸½ºß¼Â¹ÔÃæ¤Î¥·¥§¥ë´Ø¿ô¤Î̾Á°¤Ç¤¹¡£ ¤³¤ÎÊÑ¿ô¤Ï¥·¥§¥ë´Ø¿ô¤ò¼Â¹Ô¤·¤Æ¤¤¤ë´Ö¤Î¤ß¸ºß¤·¤Þ¤¹¡£ FUNCNAME ¤Ø¤ÎÂåÆþ¤Ï¸ú²Ì¤¬¤Ê¤¯¡¢¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹¡£ FUNCNAME ¤ò unset ¤¹¤ë¤È¡¢¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï̵¤¯¤Ê¤ê¤Þ¤¹¡£¸å¤ÇºÆ¤Ó set ¤·¤Æ¤â¸µ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
- DIRSTACK
- ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¹¥¿¥Ã¥¯¤ÎÆâÍÆ¤ò»ý¤ÄÇÛÎóÊÑ¿ô (¸å½Ò¤Î ÇÛÎó ¤ò»²¾È) ¤Ç¤¹¡£ÁȤ߹þ¤ß¥³¥Þ¥ó¥É dirs ¤ò»È¤¦¤È¡¢¥¹¥¿¥Ã¥¯Ãæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¥¹¥¿¥Ã¥¯½ç¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ÇÛÎóÊÑ¿ô¤ÎÍ×ÁǤËÂåÆþ¤ò¹Ô¤¦¤È¡¢ ´û¤Ë¥¹¥¿¥Ã¥¯¤ËÆþ¤Ã¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤Ç¤¤Þ¤¹¤¬¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÄɲäȺï½ü¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î pushd ¤È popd ¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤ÎÊÑ¿ô¤ËÂåÆþ¤ò¹Ô¤Ã¤Æ¤â¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѤï¤ê¤Þ¤»¤ó¡£ DIRSTACK ¤ò unset ¤¹¤ë¤È¡¢¤³¤ÎÊÑ¿ô¤ÎÆÃ¼ì¤ÊÀ¼Á¤Ï̵¤¯¤Ê¤ê¤Þ¤¹¡£¸å¤ÇºÆ¤Ó set ¤·¤Æ¤â¸µ¤Ë¤ÏÌá¤ê¤Þ¤»¤ó¡£
- PIPESTATUS
- ¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Î¥Ñ¥¤¥×¥é¥¤¥ó¤ÇºÇ¸å¤Ë¼Â¹Ô¤µ¤ì¤¿¥×¥í¥»¥¹¤Î ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Î¥ê¥¹¥È¤ò´Þ¤àÇÛÎóÊÑ¿ô¤Ç¤¹ (¸å½Ò¤Î ÇÛÎó ¤ò»²¾È)¡£
- OPTARG
- ÁȤ߹þ¤ß¥³¥Þ¥ó¥É getopts ¤Ç½èÍý¤·¤¿ºÇ¸å¤Î¥ª¥×¥·¥ç¥ó°ú¤¿ô¤ÎÃͤǤ¹ (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È)¡£
- OPTIND
- ÁȤ߹þ¤ß¥³¥Þ¥ó¥É getopts ¤Ç¼¡¤Ë½èÍý¤µ¤ì¤ë¥ª¥×¥·¥ç¥ó°ú¤¿ô¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¹ (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È)¡£
- HOSTNAME
- ¸½ºß¤Î¥Û¥¹¥È̾¤¬¼«Æ°Åª¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
- HOSTTYPE
- bash ¤ò¼Â¹Ô¤¹¤ë¥Þ¥·¥ó¤Î¼ïÎà¤ò¥æ¥Ë¡¼¥¯¤Ëµ½Ò¤¹¤ëʸ»úÎ󤬼«Æ°Åª¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à°Í¸¤Ç¤¹¡£
- OSTYPE
- bash ¤ò¼Â¹Ô¤¹¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤òµ½Ò¤¹¤ëʸ»úÎ󤬼«Æ°Åª¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à°Í¸¤Ç¤¹¡£
- MACHTYPE
- bash ¤ò¼Â¹Ô¤¹¤ë¥·¥¹¥Æ¥à¤Î¼ïÎà¤ò´°Á´¤Ë»ØÄꤹ¤ëʸ»úÎ󤬡¢ GNU ɸ½à¤Î cpu-company-system ¤Î·Á¼°¤ÇÀßÄꤵ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃͤϥ·¥¹¥Æ¥à°Í¸¤Ç¤¹¡£
- SHELLOPTS
- ¥³¥í¥ó¶èÀÚ¤ê¤Î¥ê¥¹¥È¤Ç¡¢Í¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥·¥§¥ë¤Î¥ª¥×¥·¥ç¥ó¤ò¼¨¤·¤Þ¤¹¡£ ¥ê¥¹¥ÈÃæ¤Î¤½¤ì¤¾¤ì¤Îñ¸ì¤Ï¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É set ¤Î -o ¥ª¥×¥·¥ç¥ó (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È) ¤ËÂФ¹¤ë͸ú¤Ê°ú¤¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ SHELLOPTS ¤ËÆþ¤Ã¤Æ¤¤¤ë¥ª¥×¥·¥ç¥ó¤Ï¡¢set -o ¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤â on ¤Ç¤¢¤ë¤ÈÊó¹ð¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤¬ bash ¤Îµ¯Æ°»þ¤Ë´Ä¶ÊÑ¿ô¤ËÆþ¤Ã¤Æ¤¤¤¿¾ì¹ç¡¢ ¤É¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤òÆÉ¤à¤è¤ê¤âÁ°¤Ë¥ê¥¹¥ÈÃæ¤Î¥·¥§¥ë¥ª¥×¥·¥ç¥ó¤¬Í¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤ÏÆÉ¤ß¹þ¤ßÀìÍѤǤ¹¡£
- COMP_WORDS
- ¸½ºß¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î³ÆÃ±¸ì¤«¤é¤Ê¤ëÇÛÎóÊÑ¿ô (¸å½Ò¤Î ÇÛÎó »²¾È) ¤Ç¤¹¡£ ¤³¤ÎÊÑ¿ô¤Ï¥×¥í¥°¥é¥àÊä´°µ¡Ç½ (¸å½Ò¤Î ¥×¥í¥°¥é¥àÊä´° ¤ò»²¾È) ¤«¤é¸Æ¤Ð¤ì¤¿¥·¥§¥ë´Ø¿ô¤Ë¤ª¤¤¤Æ¤Î¤ß͸ú¤Ç¤¹¡£
- COMP_CWORD
- ¸½ºß¥«¡¼¥½¥ë°ÌÃÖ¤¬ÃÖ¤«¤ì¤Æ¤¤¤ëñ¸ì¤Î ${COMP_WORDS} ¤Ë¤ª¤±¤ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¹¡£ ¤³¤ÎÊÑ¿ô¤Ï¥×¥í¥°¥é¥àÊä´°µ¡Ç½ (¸å½Ò¤Î ¥×¥í¥°¥é¥àÊä´° ¤ò»²¾È) ¤«¤é¸Æ¤Ð¤ì¤¿¥·¥§¥ë´Ø¿ô¤Ë¤ª¤¤¤Æ¤Î¤ß͸ú¤Ç¤¹¡£
- COMP_LINE
- ¸½ºß¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤¹¡£ ¤³¤ÎÊÑ¿ô¤Ï¥×¥í¥°¥é¥àÊä´°µ¡Ç½ (¸å½Ò¤Î ¥×¥í¥°¥é¥àÊä´° ¤ò»²¾È) ¤«¤é¸Æ¤Ð¤ì¤¿¥·¥§¥ë´Ø¿ô¤Ë¤ª¤¤¤Æ¤Î¤ß͸ú¤Ç¤¹¡£
- COMP_POINT
- ¸½ºß¤Î¥³¥Þ¥ó¥É¤ÎÀèÆ¬¤«¤é¤ÎÁêÂÐÃͤȤ·¤ÆÍ¿¤¨¤é¤ì¤¿ ¥«¡¼¥½¥ë°ÌÃ֤Υ¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¹¡£ ¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ¤¬¸½ºß¤Î¸½ºß¤Î¥³¥Þ¥ó¥É¤ÎºÇ¸å¤Ë¤¢¤ë¾ì¹ç¡¢ ¤³¤ÎÊÑ¿ô¤ÎÃÍ¤Ï ${#COMP_LINE} ¤ÈÅù¤·¤¯¤Ê¤ê¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤Ï¥×¥í¥°¥é¥àÊä´°µ¡Ç½ (¸å½Ò¤Î ¥×¥í¥°¥é¥àÊä´° ¤ò»²¾È) ¤«¤é¸Æ¤Ð¤ì¤¿¥·¥§¥ë´Ø¿ô¤Ë¤ª¤¤¤Æ¤Î¤ß͸ú¤Ç¤¹¡£
°Ê²¼¤ÎÊÑ¿ô¤Ï¥·¥§¥ë¤¬»ÈÍѤ·¤Þ¤¹¡£¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢ bash ¤¬¥Ç¥Õ¥©¥ë¥ÈÃͤòÊÑ¿ô¤ËÂåÆþ¤·¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤·¤Þ¤¹¡£
- IFS
- ÆâÉô¥Õ¥£¡¼¥ë¥É¶èÀÚ¤êʸ»ú (Internal Field Separator) ¤Ç¤¹¡£Å¸³«¤ò¹Ô¤Ã¤¿¸å¤Ëñ¸ì¤òʬ³ä¤¹¤ë¾ì¹ç¤ä¡¢ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î read ¤ò»È¤Ã¤¿»þ¤Ë¹Ô¤òñ¸ì¤Ëʬ³ä¤¹¤ë¾ì¹ç¤Ë»È¤ï¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï ``<¶õÇò><¥¿¥Ö><²þ¹Ô>'' ¤Ç¤¹¡£
- PATH
- ¥³¥Þ¥ó¥É¤Î¸¡º÷¥Ñ¥¹¤Ç¤¹¡£ ¥·¥§¥ë¤¬¥³¥Þ¥ó¥É¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò¥³¥í¥ó¤Ç¶èÀڤäÆÊ¤٤¿¥ê¥¹¥È¤Ç¤¹ (¸å½Ò¤Î ¥³¥Þ¥ó¥É¤Î¼Â¹Ô ¤ò»²¾È)¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ï¥·¥¹¥Æ¥à°Í¸¤Ç¡¢ bash ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥·¥¹¥Æ¥à´ÉÍý¼Ô¤¬ÀßÄꤷ¤Þ¤¹¡£ °ìÈÌŪ¤ÊÃÍ¤Ï ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.'' ¤Ç¤¹¡£
- HOME
- ¸½ºß¤Î¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡£ ÁȤ߹þ¤ß¥³¥Þ¥ó¥É cd ¤Î¥Ç¥Õ¥©¥ë¥È¤Î°ú¤¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤ÎÃͤϡ¢¥Á¥ë¥ÀŸ³«¤ò¼Â¹Ô¤¹¤ë¤È¤¤Ë¤â»È¤ï¤ì¤Þ¤¹¡£
- CDPATH
- cd ¥³¥Þ¥ó¥É¤Î¸¡º÷¥Ñ¥¹¤Ç¤¹¡£¤³¤ì¤Ï¡¢ cd ¥³¥Þ¥ó¥É¤Ç»ØÄꤷ¤¿Âоݥǥ£¥ì¥¯¥È¥ê¤òõ¤¹¥Ç¥£¥ì¥¯¥È¥ê¤ò ¥³¥í¥ó¤Ç¶èÀڤäÆÊ¤٤¿¥ê¥¹¥È¤Ç¤¹¡£ Î㤨¤Ð¡¢``.:~:/usr'' ¤È¤¤¤Ã¤¿Ãͤˤʤê¤Þ¤¹¡£
- BASH_ENV
- bash ¤¬¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤¹¤ë»þ¤Ë¤³¤ÎÃͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ¤³¤ÎÃÍ¤Ï (~/.bashrc ¤Î¤è¤¦¤Ë) ¥·¥§¥ë¤ò½é´ü²½¤¹¤ë¥³¥Þ¥ó¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë̾¤È²ò¼á¤µ¤ì¤Þ¤¹¡£ BASH_ENV ¤ÎÃͤò¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ½èÍý¤¹¤ëÁ°¤Ë¤Ï¡¢¥Ñ¥é¥á¡¼¥¿Å¸³«¡¢¥³¥Þ¥ó¥ÉÃÖ´¹¡¢ »»½ÑŪŸ³«¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ¤³¤Î·ë²Ì¤Î¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ëºÝ¤Ë¤Ï PATH ¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ë¥Õ¥¡¥¤¥ë̾¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢¤«¤ÄÊÑ¿ô MAILPATH ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ bash ¤Ï»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ø¤Î¥á¡¼¥ë¤ÎÅþÃå¤ò¥æ¡¼¥¶¤ËÄÌÃΤ·¤Þ¤¹¡£
- MAILCHECK
- bash ¤¬¥á¡¼¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ëÉÑÅÙ¤ò (Éÿô¤Ç) »ØÄꤷ¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 60 ÉäǤ¹¡£ ¥á¡¼¥ë¤ò¥Á¥§¥Ã¥¯¤¹¤ë»þ´Ö¤Ë¤Ê¤ë¤È¡¢ ¥·¥§¥ë¤Ï¥×¥é¥¤¥Þ¥ê¤Î¥×¥í¥ó¥×¥È¤òɽ¼¨¤¹¤ëÁ°¤Ë¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤¬ unset ¤µ¤ì¤¿¾ì¹ç¡¢ ¤¢¤ë¤¤¤Ï¤³¤ÎÊÑ¿ô¤Ë 0 ¤è¤êÂ礤¤¿ôÃͰʳ°¤¬ÂåÆþ¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ ¥·¥§¥ë¤Ï¥á¡¼¥ë¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤»¤ó¡£
- MAILPATH
- ¥á¡¼¥ë¤Î¥Á¥§¥Ã¥¯¤Ë»È¤¦¥Õ¥¡¥¤¥ë̾¤ò¥³¥í¥ó¤Ç¶èÀڤäÆÊ¤٤¿¥ê¥¹¥È¤Ç¤¹¡£ ÆÃÄê¤Î¥Õ¥¡¥¤¥ë¤Ë¥á¡¼¥ë¤¬ÅþÃ夷¤¿¤È¤¤Ë½ÐÎϤµ¤ì¤ë ¥á¥Ã¥»¡¼¥¸¤Ï¡¢`?' ¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë̾¤ò¥á¥Ã¥»¡¼¥¸¤«¤é¶èÀڤ뤳¤È¤Ë¤è¤Ã¤Æ »ØÄê¤Ç¤¤Þ¤¹¡£¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥¥¹¥ÈÃæ¤Ç»È¤ï¤ì¤¿¤È¤¤Ï¡¢ $_ ¤Ï¸½ºß¤Î¥á¡¼¥ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ÀßÄêÎã:
MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"'
¤³¤ÎÊÑ¿ô¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï bash ¤¬Í¿¤¨¤Þ¤¹¤¬¡¢ bash ¤¬»È¤¦¥æ¡¼¥¶¤Î¥á¡¼¥ë¥Õ¥¡¥¤¥ë¤Î°ÌÃ֤ϥ·¥¹¥Æ¥à°Í¸¤Ç¤¹ (/var/mail/$USER Åù)¡£
- PS1
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÃͤÏŸ³«¤µ¤ì¤Æ¥×¥é¥¤¥Þ¥ê¤Î¥×¥í¥ó¥×¥Èʸ»úÎó¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ (¸å½Ò¤Î ¥×¥í¥ó¥×¥È ¤ò»²¾È)¡¢ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï ``\s-\v\$ '' ¤Ç¤¹¡£
- PS2
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÃÍ¤Ï PS1 ¤ÈƱ¤¸¤è¤¦¤ËŸ³«¤µ¤ì¡¢¥»¥«¥ó¥À¥ê¤Î¥×¥í¥ó¥×¥Èʸ»úÎó¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï ``> '' ¤Ç¤¹¡£
- PS3
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÃÍ¤Ï select ¥³¥Þ¥ó¥É (Á°½Ò¤Î ¥·¥§¥ë¤Îʸˡ ¤ò»²¾È) ¤Î¥×¥í¥ó¥×¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£
- PS4
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï PS1 ¤ÈƱ¤¸¤è¤¦¤ËŸ³«¤µ¤ì¤Þ¤¹¡£¤³¤ÎÃͤϼ¹ԥȥ졼¥¹Ãæ¤Ë bash ¤¬É½¼¨¤¹¤ë³Æ¥³¥Þ¥ó¥ÉÁ°¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£ Ê£¿ôÃʤδÖÀÜ¥ì¥Ù¥ë (levels of indirection) ¤ò¼¨¤¹¤È¤¤Ï¡¢ PS4 ¤ÎºÇ½é¤Îʸ»ú¤¬É¬Íפ˱þ¤¸¤ÆÊ£¿ô²óɽ¼¨¤µ¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï ``+ '' ¤Ç¤¹¡£
- TIMEFORMAT
- ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ÎÃͤϡ¢Í½Ìó¸ì¤Ç¤¢¤ë time ¤¬ÀèÆ¬¤ËÉÕ¤¤¤Æ¤¤¤ë¥Ñ¥¤¥×¥é¥¤¥ó¤ËÂФ·¤Æ¡¢ »þ´Ö¾ðÊó¤Îɽ¼¨¤Î»ÅÊý¤ò»ØÄꤹ¤ë¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ % ¤Ï¡¢»þ´Ö¤ÎÃͤʤɤËŸ³«¤µ¤ì¤ë ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò¼¨¤¹¤¿¤á¤Îʸ»ú¤Ç¤¹¡£ ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤È¤½¤Î°ÕÌ£¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£ ¤¿¤À¤·¡¢¥Ö¥ì¡¼¥¹ ([]) ¤Ï¾Êά²Äǽ¤Ç¤¢¤ë¤³¤È¤òɽ¤·¤Þ ¤¹¡£
-
- %%
- % ʸ»ú¤½¤Î¤â¤Î¡£
- %[p][l]R
- ·Ð²á¤·¤¿Éÿô¡£
- %[p][l]U
- ¥æ¡¼¥¶¥â¡¼¥É¤Ç»È¤ï¤ì¤¿ CPU ¤ÎÉÿô¡£
- %[p][l]S
- ¥·¥¹¥Æ¥à¥â¡¼¥É¤Ç»È¤ï¤ì¤¿ CPU ¤ÎÉÿô¡£
- %P
- CPU ¤Î¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸¡£(%U + %S) / %R ¤Ç»»½Ð¤µ¤ì¤Þ¤¹¡£
-
- p ¾Êά²Äǽ¤Ç¡¢ÀºÅÙ (precision) ¤¬²¿·å¤Ç¤¢¤ë¤«¤ò»ØÄꤷ¤Þ¤¹¡£ ¤Ä¤Þ¤ê¾®¿ôÅÀ°Ê²¼¤Î·å¿ô¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤ÎÃͤ¬ 0 ¤Ê¤é¤Ð¡¢ ¾®¿ôÅÀ¤ä¾®¿ô¤ÎÉôʬ¤Ï½ÐÎϤµ¤ì¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢¾®¿ôÅÀ°Ê²¼¤Ç»ØÄê¤Ç¤¤ë¤Î¤Ï 3 ·å¤Þ¤Ç¤Ç¤¹¡£ ¤Ä¤Þ¤ê¡¢p ¤ÎÃͤ¬ 3 ¤è¤êÂ礤±¤ì¤Ð 3 ¤ËÊѹ¹¤µ¤ì¤Þ¤¹¡£ p ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¡¢¤³¤ÎÃÍ¤Ï 3 ¤È¤Ê¤ê¤Þ¤¹¡£
- l ¤Ï¾Êά²Äǽ¤Ç¤¹¤¬¡¢»ØÄꤹ¤ë¤È¡¢Ê¬¤ò´Þ¤ß¡¢ MMmSS.FF ¤È¤¤¤¦·Á¼°¤ÎŤ¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¾®¿ô¤ò´Þ¤à¤«¤É¤¦¤«¤Ï p ¤ÎÃͤˤè¤Ã¤Æ·è¤Þ¤ê¤Þ¤¹¡£
- ¤³¤ÎÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ bash ¤Ï $'\nreal\t%3lR\nuser\t%3lU\nsys %3lS' ¤È¤¤¤¦Ãͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ëưºî¤·¤Þ¤¹¡£ ¤³¤ÎÃͤ¬¶õʸ»úÎó¤Ê¤é¤Ð¡¢»þ´Ö¤Î¾ðÊó¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£ ¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤Îɽ¼¨¤ÎºÝ¤Ë¤Ï¡¢ËöÈø¤Ë²þ¹Ôʸ»ú¤¬Äɲ䵤ì¤Þ¤¹¡£
- HISTSIZE
- ¥³¥Þ¥ó¥ÉÍúÎò¤Ëµ²±¤¹¤ë¥³¥Þ¥ó¥É¤Î¿ô (¸å½Ò¤Î HISTORY ¤ò»²¾È)¡£
- HISTFILE
- ¥³¥Þ¥ó¥ÉÍúÎò¤¬Êݸ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á° (¸å½Ò¤Î ÍúÎò ¤ò»²¾È)¡£¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï ~/.bash_history ¤Ç¤¹¡£ ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ÂÐÏÃ¥·¥§¥ë¤¬½ªÎ»¤¹¤ë»þ¤ËÍúÎò¤ÎÊݸ¤¬¹Ô¤ï¤ì¤Þ¤»¤ó¡£
- HISTFILESIZE
- ÍúÎò¥Õ¥¡¥¤¥ë¤ËÊÝ»ý¤¹¤ëÍúÎò¤ÎºÇÂç¿ô¤Ç¤¹¡£¤³¤ÎÊÑ¿ô¤ËÃͤ¬ÂåÆþ¤µ¤ì¤¿¾ì¹ç¡¢ ¤½¤Î¹Ô¿ô¤ò±Û¤¨¤Ê¤¤¤è¤¦¤Ë¡¢É¬Íפ˱þ¤¸¤ÆÍúÎò¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 500 ¤Ç¤¹¡£ÂÐÏÃ¥·¥§¥ë¤¬½ªÎ»¤¹¤ë»þ¤Ë¤â¡¢ ÍúÎò¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤Ï¥Õ¥¡¥¤¥ë½ñ¤¹þ¤ß¤Î¸å¤Ë¤³¤Î¥µ¥¤¥º¤ËÀÚ¤êµÍ¤á¤é¤ì¤Þ¤¹¡£
- OPTERR
- ÃͤȤ·¤Æ 1 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ bash ¤ÏÁȤ߹þ¤ß¥³¥Þ¥ó¥É getopts (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È) ¤ò»È¤Ã¤ÆÀ¸À®¤·¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ ¥·¥§¥ë¤¬µ¯Æ°¤µ¤ì¤¿¤ê¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤¬¼Â¹Ô¤µ¤ì¤ëÅ٤ˡ¢ OPTERR ¤Ï 1 ¤Ë½é´ü²½¤µ¤ì¤Þ¤¹¡£
- LANG
- LC_ ¤Ç»Ï¤Þ¤ëÊÑ¿ô¤ÇÆÃ¤ËÁªÂò¤µ¤ì¤Ê¤¤Ç¤°Õ¤Î¥«¥Æ¥´¥ê¤ËÂФ·¤Æ¡¢ ¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥ê¤ò·è¤á¤ë¤¿¤á¤Ë»È¤¤¤Þ¤¹¡£
- LC_ALL
- ¤³¤ÎÊÑ¿ô¤Ï¥í¥±¡¼¥ë¤Î¥«¥Æ¥´¥ê¤ò»ØÄꤹ¤ë LC_ ÊÑ¿ô¤È LANG ¤Î ÃͤòÁ´¤Æ¾å½ñ¤¤·¤Þ¤¹¡£
- LC_COLLATE
- ¤³¤ÎÊÑ¿ô¤Ï¥Ñ¥¹Ì¾Å¸³«¤Î·ë²Ì¤ò¥½¡¼¥È¤¹¤ë¤È¤¤Ë»ÈÍѤµ¤ì¤ë¾È¹ç½ç½ø¤È¡¢ ¥Ñ¥¹Ì¾Å¸³«¤È¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°¤Ë¤ª¤±¤ë ÈϰÏŸ³«¡¢Æ±ÃÍ¥¯¥é¥¹¡¢¾È¹ç¥·¡¼¥±¥ó¥¹¤Îưºî·èÄꤷ¤Þ¤¹¡£
- LC_CTYPE
- ¤³¤ÎÊÑ¿ô¤Ï¡¢¥Ñ¥¹Ì¾Å¸³«¤È¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°¤Ë¤ª¤±¤ë ʸ»ú¤Î²ò¼á¤Èʸ»ú¥¯¥é¥¹¤Îµóư¤ò·è¤á¤Þ¤¹¡£
- LC_MESSAGES
- ¤³¤ÎÊÑ¿ô¤Ï¡¢$ ¤Î¸å¤Ë³¤¯¥À¥Ö¥ë¥¯¥©¡¼¥È¤µ¤ì¤¿Ê¸»úÎó¤Î ËÝÌõ¤Ë»È¤¦¥í¥±¡¼¥ë¤ò·è¤á¤Þ¤¹¡£
- LC_NUMERIC
- ¤³¤ÎÊÑ¿ô¤Ï¿ô»ú¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë»ÈÍѤ¹¤ë¥í¥±¡¼¥ë¥«¥Æ¥´¥ê¤ò·èÄꤷ¤Þ¤¹¡£
- LINES
- ÁȤ߹þ¤ß¥³¥Þ¥ó¥É select ¤Ë¤è¤Ã¤Æ¡¢ÁªÂò¤µ¤ì¤¿¥ê¥¹¥È¤òɽ¼¨¤¹¤ëºÝ¤Î¹Ô¿ô¤Î·èÄê¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£ SIGWINCH ¤ò¼õ¿®¤¹¤ë¤È¼«Æ°Åª¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
- COLUMNS
- ÁȤ߹þ¤ß¥³¥Þ¥ó¥É select ¤Ë¤è¤Ã¤Æ¡¢ÁªÂò¤µ¤ì¤¿¥ê¥¹¥È¤òɽ¼¨¤¹¤ëºÝ¤ÎüËöÉý¤Î·èÄê¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£ SIGWINCH ¤ò¼õ¿®¤¹¤ë¤È¼«Æ°Åª¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ PROMPT_COMMAND ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥×¥é¥¤¥Þ¥ê¥×¥í¥ó¥×¥È¤ò½Ð¤¹Á°¤ËËè²ó¡¢ ¤³¤ÎÃͤ¬¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
- IGNOREEOF
- ñÆÈ¤ÇÆþÎϤµ¤ì¤¿ EOF ʸ»ú¤ò¼õ¤±¼è¤Ã¤¿¤È¤¤ÎÂÐÏÃ¥·¥§¥ë¤Îưºî¤òÀ©¸æ¤·¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢»ØÄꤵ¤ì¤Æ¤¤¤ëÃͤοô¤À¤±¤Î EOF ʸ»ú¤òϢ³¤·¤Æ¹ÔƬ¤Îʸ»ú¤È¤·¤ÆÆþÎϤ·¤Ê¤±¤ì¤Ð bash ¤Ï½ªÎ»¤·¤Þ¤»¤ó¡£¤³¤ÎÊÑ¿ô¤Ë¿ôÃͰʳ°¤ÎÃͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤ä¡¢ Ãͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤȤ·¤Æ 10 ¤¬»È¤ï¤ì¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤±¤ì¤Ð¡¢ EOF ʸ»ú¤Ï¥·¥§¥ë¤Ø¤ÎÆþÎϤνª¤ï¤ê¤ò¼¨¤·¤Þ¤¹¡£
- TMOUT
- 0 ¤è¤êÂ礤¤Ãͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ ¤³¤ÎÃͤϥץ饤¥Þ¥ê¥×¥í¥ó¥×¥È¤ò½Ð¤·¤¿¸å¤ËÆþÎϤòÂÔ¤ÄÉÿô¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÉÿô¤À¤±ÂԤä¿»þÅÀ¤ÇÆþÎϤ¬Ìµ¤±¤ì¤Ð bash ¤Ï½ªÎ»¤·¤Þ¤¹¡£
- FCEDIT
- ÁȤ߹þ¤ß¥³¥Þ¥ó¥É fc ¤¬»È¤¦¥Ç¥Õ¥©¥ë¥È¤Î¥¨¥Ç¥£¥¿¤Ç¤¹¡£
- FIGNORE
- ¥Õ¥¡¥¤¥ë̾Êä´° (¸å½Ò¤Î READLINE ¤ò»²¾È) ¤ò¹Ô¤¦ºÝ¤Ë̵»ë¤¹¤ë¥µ¥Õ¥£¥Ã¥¯¥¹¤ò ¥³¥í¥ó¤Ç¶èÀڤäÆÊ¤٤¿¥ê¥¹¥È¤Ç¤¹¡£ FIGNORE ¤Î¥¨¥ó¥È¥ê¤Î¤¤¤º¤ì¤«¤Ë¥µ¥Õ¥£¥Ã¥¯¥¹¤¬¥Þ¥Ã¥Á¤¹¤ë¥Õ¥¡¥¤¥ë̾¤Ï¡¢ ¥Õ¥¡¥¤¥ë̾Êä´°¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤«¤é½ü³°¤µ¤ì¤Þ¤¹¡£ Î㤨¤ÐÃͤȤ·¤Æ ``.o:~'' ¤òÀßÄꤷ¤Þ¤¹¡£
- GLOBIGNORE
- ¥Ñ¥¹Ì¾Å¸³«¤Ç̵»ë¤¹¤ë¥Õ¥¡¥¤¥ë̾¤Î½¸¹ç¤òÄêµÁ¤¹¤ë¥Ñ¥¿¡¼¥ó¤ò ¥³¥í¥ó¤Ç¶èÀڤäÆÊ¤٤¿¥ê¥¹¥È¤Ç¤¹¡£ ¥Ñ¥¹Ì¾Å¸³«¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Õ¥¡¥¤¥ë̾¤¬ GLOBIGNORE Æâ¤Î¥Ñ¥¿¡¼¥ó¤Î¤É¤ì¤«¤Ë¤â¥Þ¥Ã¥Á¤¹¤ë¾ì¹ç¡¢ ¤³¤ì¤Ï¥Þ¥Ã¥Á¤·¤¿¤â¤Î¤Î¥ê¥¹¥È¤«¤éºï½ü¤µ¤ì¤Þ¤¹¡£
- INPUTRC
- readline ¤Îµ¯Æ°¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤Ç¤¹¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤΠ~/.inputrc (¸å½Ò¤Î READLINE ¤ò»²¾È) ¤ò¾å½ñ¤¤·¤Þ¤¹¡£
- HISTCONTROL
- ignorespace ¤ÎÃͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ ¶õÇò ʸ»ú¤Ç»Ï¤Þ¤ë¹Ô¤ÏÍúÎò¥ê¥¹¥È¤ËÆþ¤ê¤Þ¤»¤ó¡£ ignoredups ¤ÎÃͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢ ÍúÎò¤ÎºÇ¸å¤Î¹Ô¤Ë¥Þ¥Ã¥Á¤¹¤ë¹Ô¤ÏÍúÎò¥ê¥¹¥È¤ËÆþ¤ê¤Þ¤»¤ó¡£ ignoreboth ¤ÎÃͤϤ³¤ì¤é¤Î 2 ¤Ä¤Î¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë¼Â¸½¤·¤Þ¤¹¡£ ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤«¾åµ¤Î¤¤¤º¤ì¤ÎÃͤǤâ¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ ¥Ñ¡¼¥¶¤¬ÆÉ¤ß¹þ¤ó¤ÀÁ´¤Æ¤Î¹Ô¤Ï HISTIGNORE ¤ÎÃͤ¬¼¨¤¹¾ò·ï¤Î²¼¤ÇÍúÎò¥ê¥¹¥È¤ËÊݸ¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤Ï´û¤Ë¸Å¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Îµ¡Ç½¤Ï HISTIGNORE ÊÑ¿ô¤ÇÍѤ¤¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ Ê£¿ô¹Ô¤Ë¤Þ¤¿¤¬¤ëÊ£»¨¤Ê¥³¥Þ¥ó¥É¤Î¾ì¹ç¤Ï 2 ÈÖÌܰʹߤιԤ¬Ä´¤Ù¤é¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤è¤Ã¤Æ¡¢¤³¤ì¤é¤Ï HISTCONTROL ¤ÎÃͤ˴ؤï¤é¤ºÍúÎò¤ËÄɲ䵤ì¤Þ¤¹¡£
- HISTIGNORE
- ¤É¤Î¥³¥Þ¥ó¥É¹Ô¤òÍúÎò¥ê¥¹¥È¤ËÊݸ¤¹¤ë¤«¤ò·è¤á¤ë¤¿¤á¤Ë»È¤¦¥Ñ¥¿¡¼¥ó¤ò ¥³¥í¥ó¤Ç¶èÀڤäÆÊ¤٤¿¥ê¥¹¥È¤Ç¤¹¡£ ¤½¤ì¤¾¤ì¤Î¥Ñ¥¿¡¼¥ó¤Ï¹Ô¤ÎÀèÆ¬¤ÈÈæ³Ó¤µ¤ì¡¢ ¹ÔÁ´ÂΤ¬´°Á´¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó (`*' ¤¬°ÅÌÛŪ¤ËÄɲ䵤ì¤ë¤³ ¤È¤Ï¤¢¤ê¤Þ¤»¤ó)¡£³Æ¥Ñ¥¿¡¼¥ó¤Îɾ²Á¤Ï HISTCONTROL ¤Ç»ØÄꤷ¤¿¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤¿¸å¤Î¹Ô¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ Ä̾ï¤Î¥·¥§¥ë¤Î¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°Ê¸»ú°Ê³°¤Ë¡¢ `&' ¤¬ÍúÎò¤ÎÁ°¤Î¹Ô¤Ë¥Þ¥Ã¥Á¤·¤Þ¤¹¡£ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò»È¤Ã¤Æ `&' ¤ò¥¨¥¹¥±¡¼¥×¤Ç¤¤Þ¤¹¡£ ¥Þ¥Ã¥Á¥ó¥°¤ò»î¤ß¤ëÁ°¤Ë¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ï¼è¤ê½ü¤«¤ì¤Þ¤¹¡£ Ê£¿ô¹Ô¤Ë¤Þ¤¿¤¬¤ëÊ£»¨¤Ê¥³¥Þ¥ó¥É¤Î¾ì¹ç¡¢2 ÈÖÌܰʹߤιԤÏÄ´¤Ù¤é¤ì¤Þ¤»¤ó¡£ ¤è¤Ã¤Æ¡¢¤³¤ì¤é¤Ï HISTIGNORE ¤ÎÃͤ˴ؤï¤é¤ºÍúÎò¤ËÄɲ䵤ì¤Þ¤¹¡£
- histchars
- 2 ʸ»ú¤Þ¤¿¤Ï 3 ʸ»ú¤Ç¡¢ ÍúÎò¤ÎŸ³«¤È¥È¡¼¥¯¥óʬ³ä (¸å½Ò¤Î ÍúÎòŸ³« ¤ò»²¾È) ¤òÀ©¸æ¤·¤Þ¤¹¡£ ºÇ½é¤Îʸ»ú¤Ï ÍúÎòŸ³« (history expansion) ʸ»ú¤Ç¤¢¤ê¡¢ ÍúÎòŸ³«¤ÎÀèÆ¬¤ò¼¨¤¹Ê¸»ú¤Ç¤¹¡£Ä̾¤³¤ì¤Ï `!' ¤Ç¤¹¡£ 2 ÈÖÌܤÎʸ»ú¤Ï ´Ê°×ÃÖ´¹ (quick substitution) ʸ»ú¤Ç¤¢¤ê¡¢Á°¤ËÆþÎϤ·¤¿¥³¥Þ¥ó¥É¤Îʸ»úÎó¤ò Ê̤Îʸ»úÎó¤ËÃÖ¤´¹¤¨¤ÆºÆ¼Â¹Ô¤ò¹Ô¤¦¤¿¤á¤Î¾Êάɽ¸½¤È¤·¤Æ»È¤¤¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï `^' ¤Ç¤¹¡£ 3 ÈÖÌܤÎʸ»ú¤Ï¾Êά²Äǽ¤Ç¤¹¡£Ã±¸ì¤ÎÀèÆ¬¤Ç¤³¤Îʸ»ú¤¬¸«¤Ä¤«¤ë¤È¡¢ ¹Ô¤Î»Ä¤ê¤ÎÉôʬ¤¬¥³¥á¥ó¥È¤È¤Ê¤ë¤è¤¦¤Êʸ»ú¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤ì¤ÏÄ̾ï¤Ï `#' ¤Ç¤¹¡£ ÍúÎò¥³¥á¥ó¥Èʸ»ú¤¬¤¢¤ë¤È¡¢ ¤½¤Î¹Ô¤Î»Ä¤ê¤Îñ¸ì¤ËÂФ¹¤ëÍúÎòÃÖ´¹¤Ï¥¹¥¥Ã¥×¤µ¤ì¤Þ¤¹¡£ ¤³¤Îʸ»ú¤¬¤¢¤ë¤«¤é¤È¤¤¤Ã¤Æ¡¢ ɬ¤º¤·¤â¥·¥§¥ë¤Î¥Ñ¡¼¥¶¤¬¹Ô¤Î»Ä¤ê¤ÎÉôʬ¤ò¥³¥á¥ó¥È¤È¤·¤Æ°·¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- HOSTFILE
- /etc/hosts ¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ê¡¢ ¥·¥§¥ë¤¬¥Û¥¹¥È̾¤òÊä´°¤¹¤ëɬÍפ¬¤¢¤ë¤È¤¤ËÆÉ¤ß¹þ¤à¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò¼¨¤·¤Þ¤¹¡£ ¥·¥§¥ë¤Î¼Â¹ÔÃæ¤Ç¤âÊä´°¤¹¤ë¥Û¥¹¥È̾¤Î¥ê¥¹¥È¤òÊѹ¹¤Ç¤¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤¬Êѹ¹¤µ¤ì¤¿¼¡¤Îµ¡²ñ¤Ë¥Û¥¹¥È̾¤ÎÊä´°¤ò»î¤ß¤ë¤È¤¡¢ bash ¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ò´û¸¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÄɲä·¤Þ¤¹¡£ HOSTFILE ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤¬¤½¤ÎÃͤ¬¶õʸ»úÎó¤Î¾ì¹ç¡¢ bash ¤ÏÊä´°²Äǽ¤Ê¥Û¥¹¥È̾¤Î¥ê¥¹¥È¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë /etc/hosts ¤ò»ÈÍѤ·¤Þ¤¹¡£ HOSTFILE ¤¬ unset ¤µ¤ì¤¿¾ì¹ç¤Ï¡¢¥Û¥¹¥È̾¤Î¥ê¥¹¥È¤Ï¥¯¥ê¥¢¤µ¤ì¤Þ¤¹¡£
- auto_resume
- ¤³¤ÎÊÑ¿ô¤Ï¥·¥§¥ë¤¬¥æ¡¼¥¶¤È¥¸¥ç¥ÖÀ©¸æ¤ÎÁê¸ßºîÍѤò¤É¤Î¤è¤¦¤Ë°·¤¦¤«¤ò·è¤á¤Þ¤¹¡£ ¤³¤ÎÊÑ¿ô¤òÀßÄꤷ¤¿¾ì¹ç¡¢1 ¸ì¤«¤é¤Ê¤ë¥ê¥À¥¤¥ì¥¯¥È̵¤·¤Îñ½ã¤Ê¥³¥Þ¥ó¥É¤¬¡¢ Ää»ßÃæ¥¸¥ç¥Ö¤Î¼Â¹ÔºÆ³«¸õÊä¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ Û£Ëæ¤Ê»ØÄê¤Ïµö¤µ¤ì¤Þ¤»¤ó¡£ ÆþÎϤµ¤ì¤¿Ê¸»úÎó¤Ç»Ï¤Þ¤ë¥¸¥ç¥Ö¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ ºÇ¸å¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¤â¤Î¤¬Áª¤Ð¤ì¤Þ¤¹¡£ ¤³¤³¤Ç¤Î ̾Á° ¤È¤Ï¡¢¥³¥Þ¥ó¥É¤òµ¯Æ°¤¹¤ëºÝ¤Ë»È¤Ã¤¿¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¤³¤È¤Ç¤¹¡£ ¤³¤ÎÃÍ¤Ë exact ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤ÏÄä»ß¤·¤Æ¤¤¤ë¥¸¥ç¥Ö¤Î̾Á°¤Ë Àµ³Î¤Ë¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ substring ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤ÏÄä»ß¤·¤Æ¤¤¤ë¥¸¥ç¥Ö¤Î̾Á°¤ÎÉôʬʸ»úÎó¤Ë ¥Þ¥Ã¥Á¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ substring ¤È¤¤¤¦Ãͤϡ¢¥¸¥ç¥Ö¼±Ê̻ҤΠ%? ¤Ë»÷¤¿µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹ (¸å½Ò¤Î ¥¸¥ç¥ÖÀ©¸æ ¤ò»²¾È)¡£¤³¤ì°Ê³°¤ÎÃͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤ÏÄä»ß¤·¤Æ¤¤¤ë¥¸¥ç¥Ö¤Î̾Á°¤Î ¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¥¸¥ç¥Ö¼±Ê̻ҤΠ% ¤È»÷¤¿µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
- COMPREPLY
- bash ¤¬²Äǽ¤ÊÊä´°¸õÊä¤òÆÉ¤ß¹þ¤àÇÛÎóÊÑ¿ô¤Ç¤¹¡£ ¤³¤ÎÃÍ¤Ï¥×¥í¥°¥é¥àÊä´°µ¡Ç½ (¸å½Ò¤Î ¥×¥í¥°¥é¥àÊä´° ¤ò»²¾È) ¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¥·¥§¥ë´Ø¿ô¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤Þ¤¹¡£
ÇÛÎó
bash ¤Ï 1 ¼¡¸µ¤ÎÇÛÎóÊÑ¿ô¤ò°·¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ Á´¤Æ¤ÎÊÑ¿ô¤ÏÇÛÎó¤È¤·¤Æ»ÈÍѤǤ¤Þ¤¹¡£ declare ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤ò»È¤¨¤Ð¡¢ÌÀ¼¨Åª¤ËÇÛÎó¤òÀë¸À¤Ç¤¤Þ¤¹¡£ ÇÛÎó¤Î¥µ¥¤¥º¤Î¾å¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¤·¡¢ ¥á¥ó¥Ð¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤äÂåÆþ¤ò Ϣ³Ū¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦¾ò·ï¤â¤¢¤ê¤Þ¤»¤ó¡£ ÇÛÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ÉÕ¤±¤Ï 0 ¤«¤é»Ï¤Þ¤ëÀ°¿ô¤òÍѤ¤¤Æ¹Ô¤¤¤Þ¤¹¡£ÊÑ¿ô¤ÎÂåÆþ¤ÎºÝ¤Ë name[subscript]=value ¤È¤¤¤¦µË¡¤¬»È¤ï¤ì¤¿¾ì¹ç¡¢ÇÛÎó¤Ï¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£ subscript ¤Ï»»½Ñ¼°¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¤¬¡¢¤³¤Î¼°¤Ïɾ²Á¤¹¤ë¤È 0 °Ê¾å¤Î¿ôÃͤˤʤë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ÌÀ¼¨Åª¤ËÇÛÎó¤òÀë¸À¤¹¤ë¤Ë¤Ï¡¢ declare -a name ¤ò»È¤¤¤Þ¤¹ (¸å½Ò¤Î ¥·¥§¥ë¤ÎÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È)¡£ declare -a name[subscript] ¤âµö¤µ¤ì¤Þ¤¹¡£subscript ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î declare ¤È readonly ¤ò»È¤¦¤È¡¢ÇÛÎóÊÑ¿ô¤ËÂФ·¤ÆÂ°À¤òÀßÄê¤Ç¤¤Þ¤¹¡£ ¤É¤Á¤é¤Î°À¤âÇÛÎó¤Î¥á¥ó¥ÐÁ´¤Æ¤ËÂФ·¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£
ÇÛÎó¤ÎÂåÆþ¤Ï name=(value1 ... valuen) ¤È¤¤¤¦·Á¼°¤ÎÊ£¹çÂåÆþ (compound assignment) ¤òÍѤ¤¤Æ¹Ô¤¤¤Þ¤¹¡£ ¤³¤³¤Ç¤½¤ì¤¾¤ì¤Î value ¤Î·Á¼°¤Ï [subscript]=string ¤Ç¤¹¡£ ɬÍ×¤Ê¤Î¤Ï string ¤À¤±¤Ç¤¹¡£ ¥Ö¥é¥±¥Ã¥È([])¤Èź»ú¤ò¾Êά¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ ¤½¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂФ·¤ÆÂåÆþ¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ¾Êά¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÂåÆþ¤µ¤ì¤ëÍ×ÁǤΥ¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢ ¤½¤Îʸ¤ÎÃæ¤ÇľÁ°¤ËÂåÆþ¤µ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë 1 ¤ò²Ã¤¨¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï 0 ¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£ ¤³¤ÎµË¡¤ÏÁȤ߹þ¤ß¥³¥Þ¥ó¥É declare ¤Ç¤â»È¤¨¤Þ¤¹¡£¸ÄÊ̤ÎÇÛÎóÍ×ÁǤËÂФ¹¤ëÂåÆþ¤Ï¡¢Àè¤ËÀâÌÀ¤·¤¿ name[subscript]=value ¤ÎµË¡¤ò»È¤Ã¤Æ¹Ô¤¤¤Þ¤¹¡£
ÇÛÎó¤ÎǤ°Õ¤ÎÍ×ÁǤϡ¢${name[subscript]} ¤ò»È¤Ã¤Æ»²¾È¤Ç¤¤Þ¤¹¡£ ¥Ñ¥¹Ì¾Å¸³«¤È¤Î¾×ÆÍ¤òÈò¤±¤ë¤¿¤á¤Ë¥Ö¥ì¡¼¥¹¤¬É¬ÍפǤ¹¡£ ź»ú(subscript)¤¬ @ ¤« * ¤Ê¤é¤Ð¡¢¤½¤Îñ¸ì¤Ï name ¤ÎÁ´¤Æ¤ÎÍ×ÁǤËŸ³«¤µ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Îź»ú¤¬°Û¤Ê¤ë¤Î¤Ï¡¢ ñ¸ì¤¬¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤Ë¤¢¤ë¾ì¹ç¤À¤±¤Ç¤¹¡£ ñ¸ì¤¬¥À¥Ö¥ë¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢${name[*]} ¤Ï 1 ¤Ä¤Îñ¸ì¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤Îñ¸ì¤Ï¡¢ÇÛÎó¤Î³Æ¥á¥ó¥Ð¤ÎÃͤòÆÃ¼ìÊÑ¿ô IFS ¤ÎÃͤǶèÀڤäÆÊ¤٤¿¤â¤Î¤Ç¤¹¡£${name[@]}¤Ï¡¢ name ¤Î³ÆÍ×ÁǤòÊÌ¡¹¤Îñ¸ì¤ËŸ³«¤·¤Þ¤¹¡£ ÇÛÎó¤Î¥á¥ó¥Ð¤¬Á´¤¯Ìµ¤¤¤È¤¤Ï¡¢${name[@]} ¤Ï¶õ¤Îñ¸ì¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤ÏÆÃ¼ì¥Ñ¥é¥á¡¼¥¿ * ¤ä @ ¤Ë»÷¤Æ¤¤¤Þ¤¹ (Á°½Ò¤Î ÆÃ¼ì¥Ñ¥é¥á¡¼¥¿ ¤ò»²¾È)¡£${#name[subscript]} ¤Ï ${name[subscript]} ¤ÎŤµ¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ subscript ¤¬ * ¤Þ¤¿¤Ï @ ¤Î¾ì¹ç¤Ï¡¢ ÇÛÎóÃæ¤ÎÍ×ÁÇ¿ô¤ËŸ³«¤µ¤ì¤Þ¤¹¡£Åº»ú̵¤·¤ÇÇÛÎóÊÑ¿ô¤ò»²¾È¤¹¤ë¤È¡¢ Í×ÁÇ 0 ¤ò»²¾È¤·¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î unset ¤ÏÇÛÎó¤ÎÇË´þ¤Ë»È¤ï¤ì¤Þ¤¹¡£unset name[subscript] ¤È¤¹¤ë¤È¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ subscript ¤Ç¤¢¤ëÇÛÎó¤ÎÍ×ÁǤ¬ÇË´þ¤µ¤ì¤Þ¤¹¡£ unset name (name ¤ÏÇÛÎó) ¤Þ¤¿¤Ï unset name[subscript] (subscript ¤¬ * ¤Þ¤¿¤Ï @) ¤È¤¹¤ë¤È¡¢ ÇÛÎóÁ´ÂΤ¬ÇË´þ¤µ¤ì¤Þ¤¹¡£
ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Î declare, local, readonly ¤¤¤º¤ì¤Ë¤ª¤¤¤Æ¤â¡¢ -a ¥ª¥×¥·¥ç¥ó¤ÇÇÛÎó¤ò»ØÄê¤Ç¤¤Þ¤¹¡£ÁȤ߹þ¤ß¥³¥Þ¥ó¥É read ¤Ç¤Ï¡¢ -a ¥ª¥×¥·¥ç¥ó¤ò»È¤¨¤Ðɸ½àÆþÎϤ«¤éÆÉ¤ß¹þ¤ó¤Àñ¸ì¤Î¥ê¥¹¥È¤ò ÇÛÎó¤ËÂåÆþ¤Ç¤¤Þ¤¹¡£ÁȤ߹þ¤ß¥³¥Þ¥ó¥É set ¤È declare ¤Ç¤Ï¡¢Ê̤ÎÊÑ¿ô¤Ø¤ÎÂåÆþ¤ËºÆÍøÍѤǤ¤ë¤è¤¦¤Ê·Á¤ÇÇÛÎó¤ÎÃͤòɽ¼¨¤·¤Þ¤¹¡£
Ÿ³«
Ÿ³«¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤¬Ã±¸ì¤ØÊ¬³ä¤µ¤ì¤¿¸å¤Ë (¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç) ¹Ô¤ï¤ì¤Þ¤¹¡£¹Ô¤ï¤ì¤ëŸ³«¤Ï 7 ¼ïÎढ¤ê¤Þ¤¹: ¥Ö¥ì¡¼¥¹¤ÎŸ³« (brace expansion), ¥Á¥ë¥À¤ÎŸ³« (tilde expansion), ¥Ñ¥é¥á¡¼¥¿¤ÈÊÑ¿ô¤ÎŸ³« (parameter and variable expansion), ¥³¥Þ¥ó¥ÉÃÖ´¹ (command substitution), »»½Ñ¼°Å¸³« (arithmetic expansion), ñ¸ì¤Îʬ³ä (word splitting), ¥Ñ¥¹Ì¾¤ÎŸ³« (pathname expansion)¡£Å¸³«¤Î½ç½ø¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹: ¥Ö¥ì¡¼¥¹Å¸³«¡¢¥Á¥ë¥ÀŸ³«¡¢¥Ñ¥é¥á¡¼¥¿¡¦ ÊÑ¿ô¡¦»»½Ñ¼°Å¸³«¡¢¥³¥Þ¥ó¥ÉÃÖ´¹ (º¸¤«¤é±¦¤Ø)¡¢Ã±¸ìʬ³ä¡¢¥Ñ¥¹Ì¾Å¸³«¡£
¤³¤ì¤é¤Ë²Ã¤¨¤Æ ¥×¥í¥»¥¹ÃÖ´¹ (process substitution) ¤ò¥µ¥Ý¡¼¥È¤Ç¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ê¤Þ¤¹¡£
Ÿ³«¤·¤¿Éôʬ¤Îñ¸ì¤Î¿ô¤¬ÊѲ½¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ï¡¢¥Ö¥ì¡¼¥¹Å¸³«¡¢ ñ¸ì¤Îʬ³ä¡¢¥Ñ¥¹Ì¾Å¸³«¤À¤±¤Ç¤¹¡£Â¾¤ÎŸ³«¤Ç¤Ï¡¢ 1 ¤Ä¤Îñ¸ì¤Ï 1 ¤Ä¤Îñ¸ì¤ËŸ³«¤µ¤ì¤Þ¤¹¡£ ¤³¤Îµ¬Â§¤ÎÍ£°ì¤ÎÎã³°¤ÏÀè¤ËÀâÌÀ¤·¤¿
"$@" ¤È "${name[@]}" ¤ÎŸ³« ( ¥Ñ¥é¥á¡¼¥¿ ¤ò»²¾È) ¤À¤±¤Ç¤¹¡£
¥Ö¥ì¡¼¥¹Å¸³«
¥Ö¥ì¡¼¥¹Å¸³« (brace expansion) ¤ò»È¤¦¤È¡¢Ç¤°Õ¤Îʸ»úÎó¤òÀ¸À®¤Ç¤¤Þ¤¹¡£¤³¤Îµ¡¹½¤Ï ¥Ñ¥¹Ì¾Å¸³«¤Ë»÷¤Æ¤¤¤Þ¤¹¤¬¡¢ À¸À®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¼Âºß¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ¥Ö¥ì¡¼¥¹Å¸³«¤µ¤ì¤ë¥Ñ¥¿¡¼¥ó¤Ï¡¢ Á°ÃÖÉôʬ (preamble: ¾Êά²Äǽ)¡¢ ÂФˤʤë¥Ö¥ì¡¼¥¹¤Î´Ö¤Ë¥³¥ó¥Þ¤Ç¶èÀڤäÆÊ¤٤¿Ê¸»úÎó¡¢ ¸åÃÖÉôʬ (postscript: ¾Êά²Äǽ) ¤ò½ç¤Ëʤ٤¿¤â¤Î¤Ç¤¹¡£ Á°ÃÖÉôʬ¤Ï¥Ö¥ì¡¼¥¹Æâ¤Ë¤¢¤ëʸ»úÎ󤽤줾¤ì¤ÎÀèÆ¬Éôʬ¤ËÄɲ䵤졢 ¸åÃÖÉôʬ¤Ïº¸¤«¤é±¦¤Ë½ç¤ËŸ³«¤µ¤ì¤ÆÆÀ¤é¤ì¤¿ ¤½¤ì¤¾¤ì¤Îʸ»úÎó¤ÎËöÈø¤ËÄɲ䵤ì¤Þ¤¹¡£
¥Ö¥ì¡¼¥¹¤ÎŸ³«¤ÏÆþ¤ì»Ò¤Ë¤Ç¤¤Þ¤¹¡£ Ÿ³«¤·¤ÆÆÀ¤é¤ì¤¿Ê¸»úÎó¤Ï¥½¡¼¥È¤µ¤ì¤º¡¢ º¸¤«¤é±¦¤Ø¤Î½çÈÖ¤¬¤½¤Î¤Þ¤Þ»Ä¤ê¤Þ¤¹¡£ Î㤨¤Ð a{d,c,b}e ¤Ï `ade ace abe' ¤ÈŸ³«¤µ¤ì¤Þ¤¹¡£
¥Ö¥ì¡¼¥¹¤ÎŸ³«¤Ï¾¤Î¤É¤ÎŸ³«¤è¤ê¤âÁ°¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢Â¾¤ÎŸ³«¤Ë¤ª¤¤¤ÆÆÃ¼ì¤Ê°ÕÌ£¤ò»ý¤Äʸ»ú¤â¤½¤Î¤Þ¤Þ·ë²Ì¤Ë»Ä¤ê¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢¸·Ì©¤Ë¥Æ¥¥¹¥ÈÁàºî¤À¤±¤ò¹Ô¤¤¤Þ¤¹¡£ bash ¤Ï¡¢Å¸³«¤Îʸ̮¤ä¥Ö¥ì¡¼¥¹¤Î´Ö¤Î¥Æ¥¥¹¥È¤ËÂФ·¤Æ ʸˡŪ¤Ê²ò¼á¤òŬÍѤ¹¤ë¤³¤È¤Ï°ìÀÚ¤¢¤ê¤Þ¤»¤ó¡£
Àµ¤·¤¤·Á¤Î¥Ö¥ì¡¼¥¹Å¸³«¤Ë¤Ï¡¢¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤³«¤¥Ö¥ì¡¼¥¹¤È ÊĤ¸¥Ö¥ì¡¼¥¹¡¢¤Þ¤¿¾¯¤Ê¤¯¤È¤â 1 ¤Ä¤Î¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥³¥ó¥Þ¤¬ ´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Àµ¤·¤¤·Á¤Ç¤Ê¤¤¥Ö¥ì¡¼¥¹Å¸³«¤ÏÁ´¤Æ¡¢ Êѹ¹¤µ¤ì¤Ê¤¤¤Ç¤½¤Î¤Þ¤Þ»Ä¤ê¤Þ¤¹¡£ { ¤ä , ¤ò¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç¥¯¥©¡¼¥È¤¹¤ì¤Ð¡¢ ¥Ö¥ì¡¼¥¹Å¸³«¤Î°ìÉô¤È²ò¼á¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£ ¥Ñ¥é¥á¡¼¥¿Å¸³«¤È¤Î¾×ÆÍ¤òÈò¤±¤ë¤¿¤á¡¢Ê¸»úÎó ${ ¤Ï¥Ö¥ì¡¼¥¹Å¸³«¤ÎÂоݤȤϲò¼á¤µ¤ì¤Þ¤»¤ó¡£
¤³¤Î»ÅÁȤߤϡ¢ À¸À®¤µ¤ì¤ëʸ»úÎó¤Î¶¦ÄÌÀèÆ¬Éôʬ¤¬¾åµ¤ÎÎã¤è¤êŤ¤¾ì¹ç¤Ë¡¢ û½Ìɽ¸½¤È¤·¤Æ¤è¤¯»ÈÍѤµ¤ì¤Þ¤¹:
mkdir /usr/local/src/bash/{old,new,dist,bugs}
- chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
¥Ö¥ì¡¼¥¹Å¸³«¤ÎƳÆþ¤Ë¤è¤Ã¤Æ¡¢ÅÁÅýŪ¤Ê sh ¤È¤Ï¾¯¤·Èó¸ß´¹¤Ë¤Ê¤Ã¤¿Éôʬ¤¬¤¢¤ê¤Þ¤¹¡£ sh ¤Ïñ¸ì¤Î°ìÉô¤È¤·¤Æ³«¤¥Ö¥ì¡¼¥¹¤äÊĤ¸¥Ö¥ì¡¼¥¹¤¬¸½¤ï¤ì¤Æ¤âÆÃḚ̂·¤¤¤Ï¤»¤º¡¢ ¤½¤Î¤Þ¤Þ½ÐÎϤ˻Ĥ·¤Þ¤¹¡£ bash ¤Ï¥Ö¥ì¡¼¥¹Å¸³«¤Î·ë²Ì¤È¤·¤ÆÃ±¸ì¤«¤é¥Ö¥ì¡¼¥¹¤ò¼è¤ê½ü¤¤Þ¤¹¡£Î㤨¤Ð sh ¤Ë file{1,2} ¤Î¤è¤¦¤ËÆþÎϤµ¤ì¤¿Ã±¸ì¤Ï¤½¤Î¤Þ¤Þ¤Î·Á¤Ç½ÐÎϤµ¤ì¤Þ¤¹¤¬¡¢ bash ¤Ç¤Ï¤³¤ÎƱ¤¸Ã±¸ì¤ÏŸ³«¤µ¤ì¤Æ file1 file2 ¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£ ¸·Ì©¤Ë sh ¤È¸ß´¹¤Ë¤·¤¿¤±¤ì¤Ð¡¢ bash ¤ò +B ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æµ¯Æ°¤¹¤ë¤«¡¢ set ¥³¥Þ¥ó¥É¤Ë +B ¥ª¥×¥·¥ç¥ó¤òÍ¿¤¨¤Æ¥Ö¥ì¡¼¥¹Å¸³«¤ò̵¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤ (¸å½Ò¤¹¤ë ¥·¥§¥ëÁȤ߹þ¤ß¥³¥Þ¥ó¥É ¤ò»²¾È)¡£
¥Á¥ë¥ÀŸ³«
¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Á¥ë¥À (`~') ¤Çñ¸ì¤¬»Ï¤Þ¤Ã¤¿¾ì¹ç¡¢ ¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¥Ã¥·¥å¤è¤ê¤âÁ°¤Ë¤¢¤ëʸ»ú¤¹¤Ù¤Æ (¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¥Ã¥·¥å¤¬Ìµ¤±¤ì¤Ð¤¹¤Ù¤Æ¤Îʸ»ú) ¤Ï¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹ (tilde-prefix) ¤È²ò¼á¤µ¤ì¤Þ¤¹¡£ ¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ëʸ»ú¤¬¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹Ãæ¤Ë̵¤±¤ì¤Ð¡¢ ¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹Ãæ¤Î¥Á¥ë¥À°Ê¹ß¤Îʸ»ú¤Ï¡¢ ¥í¥°¥¤¥ó̾ (login name) ¤Ë¤Ê¤ë²ÄǽÀ¤¬¤¢¤ëʸ»úÎó¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ ¤³¤Î¥í¥°¥¤¥ó̾¤¬¶õʸ»úÎó¤Ê¤é¤Ð¡¢¥Á¥ë¥À¤Ï¥·¥§¥ë¥Ñ¥é¥á¡¼¥¿ HOME ¤ÎÃͤËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£ HOME ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢Âå¤ï¤ê¤Ë¥·¥§¥ë¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Î ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£ ¥í¥°¥¤¥ó̾¤¬¶õ¤Ç¤Ê¤±¤ì¤Ð¡¢ ¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï»ØÄꤵ¤ì¤¿¥í¥°¥¤¥ó̾¤ËÂбþ¤¹¤ë ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£
¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬ `~+' ¤Ê¤é¤Ð¡¢¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï¥·¥§¥ëÊÑ¿ô PWD ¤ÎÃͤËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£ ¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬ `~-' ¤Ê¤é¤Ð¡¢¥·¥§¥ëÊÑ¿ô OLDPWD ¤ÎÃͤËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹ (Ãͤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð)¡£ ¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹Ãæ¤Î¥Á¥ë¥À¤è¤ê¸å¤Îʸ»ú¤¬¿ôÃÍ N ¤Ç¤¢¤ì¤Ð (¿ôÃͤÎÁ°¤Ë `+' ¤ä `-' ¤òÃÖ¤¯¤³¤È¤â¤Ç¤¤Þ¤¹)¡¢ ¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥¿¥Ã¥¯Æâ¤ÎÂбþ¤¹¤ëÍ×ÁǤËÃÖ´¹¤µ¤ì¤Þ¤¹¡£ ÃÖ´¹¤µ¤ì¤ëÍ×ÁǤϡ¢¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ò°ú¤¿ô¤È¤·¤ÆÁȤ߹þ¤ß¥³¥Þ¥ó¥É dirs ¤ò¼Â¹Ô¤·¤¿¤È¤¤Ëɽ¼¨¤µ¤ì¤ë¤â¤Î¤Ç¤¹¡£ ¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ë¤ª¤±¤ë¥Á¥ë¥À°Ê¹ß¤Îʸ»ú¤¬¡¢ Àè¹Ô¤¹¤ë `+' ¤ä `-' ¤Î¤Ê¤¤¿ôÃͤǤ¢¤ë¾ì¹ç¤Ï¡¢`+' ¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£
¥í¥°¥¤¥ó̾¤¬Í¸ú¤Ç¤Ê¤¤¾ì¹ç¤ä¡¢¥Á¥ë¥ÀŸ³«¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ ñ¸ì¤ÏÃÖ¤´¹¤¨¤é¤ì¤Þ¤»¤ó¡£
Á´¤Æ¤ÎÊÑ¿ôÂåÆþ¤Ë¤ª¤¤¤Æ¡¢ : ¤ä = ¤Îľ¸å¤Ë¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Á¥ë¥À¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬¤Ê¤¤¤«¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ¤â¤·¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤â¥Á¥ë¥ÀŸ³«¤µ¤ì¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢ PATH, MAILPATH, CDPATH ¤Ø¤ÎÂåÆþ¤Ë¥Á¥ë¥À¤ò´Þ¤à¥Õ¥¡¥¤¥ë̾¤ò»È¤¨¤Ð¡¢ ¥·¥§¥ë¤ÏŸ³«¤µ¤ì¤¿ÃͤòÂåÆþ¤·¤Þ¤¹¡£
¥Ñ¥é¥á¡¼¥¿¤ÎŸ³«
`$' ʸ»ú¤¬¤¢¤ë¤È¡¢¥Ñ¥é¥á¡¼¥¿Å¸³«¡¢¥³¥Þ¥ó¥ÉÃÖ´¹¡¢ »»½Ñ¼°Å¸³«¤¬¹Ô¤ï¤ì¤Þ¤¹¡£Å¸³«¤µ¤ì¤ë¥Ñ¥é¥á¡¼¥¿Ì¾¤ä¥·¥ó¥Ü¥ë¤Ï¡¢ ¥Ö¥ì¡¼¥¹¤Ç³ç¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¥Ö¥ì¡¼¥¹¤Ï¾Êά²Äǽ¤Ç¤¹¤¬¡¢ ÊÑ¿ô¤Îľ¸å¤ËÊÑ¿ô̾¤Î°ìÉô¤È²ò¼á¤Ç¤¤ëʸ»ú¤¬ÃÖ¤«¤ì¤¿¾ì¹ç¤Ë¡¢ ¤½¤Îʸ»ú¤È¶¦¤ËÊÑ¿ô¤¬Å¸³«¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤òËɤ°¤¿¤á¤ËÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¥Ö¥ì¡¼¥¹¤ò»È¤Ã¤¿¾ì¹ç¡¢¥Þ¥Ã¥Á¥ó¥°¤ò½ª¤¨¤ë¥Ö¥ì¡¼¥¹¤ÏºÇ½é¤Î `}' ¤Ç¤¹¡£ ¤¿¤À¤·¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ä ¥¯¥©¡¼¥È¤µ¤ì¤Æ¤¤¤ëʸ»úÎóÃæ¤Î¤â¤Î¤Ï´Þ¤Þ¤ì¤Þ¤»¤ó¤·¡¢ »»½Ñ¼°Å¸³«¤ä¥³¥Þ¥ó¥ÉÃÖ´¹¡¢¥Ñ¥é¥á¡¼¥¿Å¸³«¤ËÆþ¤Ã¤Æ¤¤¤ë¤â¤Î¤â´Þ¤Þ¤ì¤Þ¤»¤ó¡£
- ${parameter}
- parameter ¤ÎÃͤ¬ÃÖ´¹¤µ¤ì¤Þ¤¹¡£¥Ö¥ì¡¼¥¹¤¬É¬Íפˤʤë¤Î¤Ï¡¢ parameter ¤¬ 2 ·å°Ê¾å¤Î¿ô»ú¤ò»ý¤Ä°ÌÃ֥ѥé¥á¡¼¥¿¤Î¾ì¹ç¤ä¡¢ parameter ¤Îľ¸å¤Îʸ»ú¤ò̾Á°¤Î°ìÉô¤È¤·¤Æ²ò¼á¤µ¤»¤¿¤¯¤Ê¤¤¾ì¹ç¤Ç¤¹¡£
parameter ¤ÎºÇ½é¤Îʸ»ú¤¬´¶Ã²Éä¤Ç¤¢¤ë¾ì¹ç¡¢´ÖÀÜÊÑ¿ô¥ì¥Ù¥ë (level of variable indirection) ¤È¤¤¤¦³µÇ°¤¬Æ³Æþ¤µ¤ì¤Þ¤¹¡£ bash ¤Ï¡¢Å¸³«¤Ë parameter ¤½¤Î¤â¤Î¤ÎÃͤò»ÈÍѤ¹¤ë¤Î¤Ç¤Ê¤¯¡¢ parameter ¤Î´¶Ã²Éä¤ò½ü¤¤¤¿»Ä¤ê¤Îʸ»ú¤òÊÑ¿ô̾¤È¤·¤Æ°·¤¤¡¢ ¤½¤ÎÊÑ¿ô¤ÎÃͤò¤½¤Î¸å¤ÎŸ³«¤Ë»ÈÍѤ·¤Þ¤¹¡£ ¤³¤ì¤¬´ÖÀÜŸ³« (indirect expansion) ¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Ç¤¹¡£ ¤¿¤À¤· ${!prefix*} ¤ÎŸ³«¤ÏÎã³°¤Ç¤¹¡£¤³¤ì¤Ï°Ê²¼¤ÇÀâÌÀ¤·¤Þ¤¹¡£
°Ê²¼¤Ë¼¨¤¹¤½¤ì¤¾¤ì¤Î¾ì¹ç¡¢word ¤ËÂФ·¤Æ¥Á¥ë¥ÀŸ³«¡¢ ¥Ñ¥é¥á¡¼¥¿Å¸³«¡¢¥³¥Þ¥ó¥ÉÃÖ´¹¡¢»»½Ñ¼°Å¸³«¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ Éôʬʸ»úÎ󟳫°Ê³°¤Î¾ì¹ç¡¢ bash ¤Ï¥Ñ¥é¥á¡¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¡¢¶õ¤Ç¤Ï¤Ê¤¤¤«¤òÄ´¤Ù¤Þ¤¹¡£ ¥³¥í¥ó¤ò¾Êά¤·¤¿¾ì¹ç¤Ë¤ÏÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¤ß¤òÄ´¤Ù¤Þ¤¹¡£
- ${parameter:-word}
- ¥Ç¥Õ¥©¥ë¥È¤ÎÃͤò»È¤¤¤Þ¤¹¡£ parameter ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤«¶õʸ»úÎó¤Ç¤¢¤ì¤Ð¡¢ word ¤òŸ³«¤·¤¿¤â¤Î¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢ parameter ¤ÎÃͤËÃÖ´¹¤µ¤ì¤Þ¤¹¡£
- ${parameter:=word}
- ¥Ç¥Õ¥©¥ë¥È¤ÎÃͤòÂåÆþ¤·¤Þ¤¹¡£ parameter ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤«¶õʸ»úÎó¤Ç¤¢¤ì¤Ð¡¢ word ¤òŸ³«¤·¤¿¤â¤Î¤¬ parameter ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤½¤ì¤«¤é parameter ¤ÎÃͤؤÎÃÖ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ °ÌÃ֥ѥé¥á¡¼¥¿¤äÆÃ¼ì¥Ñ¥é¥á¡¼¥¿¤Ø¤ÎÂåÆþ¤ò¤³¤Î¤è¤¦¤Ë¹Ô¤¦¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
- ${parameter:?word}
- ¶õʸ»úÎó¤Þ¤¿¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¥¨¥é¡¼¤òɽ¼¨¤·¤Þ¤¹¡£ parameter ¤¬¶õʸ»úÎó¤Þ¤¿¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢word ¤òŸ³«¤·¤¿¤â¤Î (word ¤¬¤Ê¤±¤ì¤Ð ¥Ñ¥é¥á¡¼¥¿¤¬¶õʸ»úÎó¤Þ¤¿¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¥á¥Ã¥»¡¼¥¸) ¤¬É¸½à¥¨¥é¡¼½ÐÎϤ˽ÐÎϤµ¤ì¤Þ¤¹¡£¥·¥§¥ë¤¬ÂÐÏÃŪ¤Ç¤Ê¤±¤ì¤Ð¡¢ ¥·¥§¥ë¤Ï½ªÎ»¤·¤Þ¤¹¡£¥Ñ¥é¥á¡¼¥¿¤Ë¶õʸ»úÎó°Ê³°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ parameter ¤ÎÃͤؤÎÃÖ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¡£
- ${parameter:+word}
- Ê̤ÎÃͤò»ÈÍѤ·¤Þ¤¹¡£ parameter ¤¬¶õʸ»úÎó¤Þ¤¿¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¶õʸ»úÎó¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð word ¤òŸ³«¤·¤¿¤â¤Î¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£
- ${parameter:offset}
- ${parameter:offset:length}
- Éôʬʸ»úÎ󟳫¡£ parameter ¤òŸ³«¤·¤¿¤â¤Î¤«¤éºÇÂç length ʸ»ú¤ò¼è¤ê½Ð¤·¤Þ¤¹¡£ ÀèÆ¬¤Îʸ»ú¤Ï offset ¤Ç»ØÄꤷ¤Þ¤¹¡£length ¤ò¾Êά¤¹¤ë¤È¡¢ offset ¤Ç»ØÄꤷ¤¿Ê¸»ú¤òÀèÆ¬¤Ë¤·¤Æ¡¢ parameter ¤Î»Ä¤êÁ´Éô¤¬´Þ¤Þ¤ì¤ëÉôʬʸ»úÎó¤ËŸ³«¤·¤Þ¤¹¡£ length ¤È offset ¤Ï»»½Ñ¼°¤Ç¤¹ (¸å½Ò¤Î »»½Ñ¼°É¾²Á ¤ò»²¾È)¡£ length ¤Îɾ²Á·ë²Ì¤Ï 0 °Ê¾å¤Î¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ offset ¤òɾ²Á¤¹¤ë¤È 0 ̤Ëþ¤Î¿ô¤Ë¤Ê¤ë¾ì¹ç¡¢¤³¤ÎÃÍ¤Ï parameter ¤ÎÃͤÎËöÈø¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ parameter ¤¬ @ ¤Ê¤é¤Ð¡¢·ë²Ì¤Ï offset ¤«¤é»Ï¤Þ¤ë length ¸Ä¤Î°ÌÃ֥ѥé¥á¡¼¥¿¤Ë¤Ê¤ê¤Þ¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÕ¤¤¤Æ¤¤¤ëÇÛÎó̾¤Ê¤é¤Ð¡¢ ·ë²Ì¤ÏÇÛÎó¤Î ${parameter[offset]} ¤òÀèÆ¬¤È¤¹¤ëÍ×ÁÇ length ¸Ä¤È¤Ê¤ê¤Þ¤¹¡£°ÌÃ֥ѥé¥á¡¼¥¿¤ò»È¤¦¾ì¹ç°Ê³°¤Ï¡¢ Éôʬʸ»úÎó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï 0 ¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£°ÌÃ֥ѥé¥á¡¼¥¿¤Î¾ì¹ç¤Ë¤Ï¡¢ ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï 1 ¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£
- ${!prefix*}
- prefix ¤Ç»Ï¤Þ¤ë¤¹¤Ù¤Æ¤ÎÊÑ¿ô¤Î̾Á°¤ËŸ³«¤·¤Æ¡¢ IFS ÆÃ¼ìÊÑ¿ô¤ÎºÇ½é¤Îʸ»ú¤Ë¤è¤Ã¤Æ¶èÀÚ¤ê¤Þ¤¹¡£
- ${#parameter}
- parameter ¤ÎÃͤ˴ޤޤì¤ëʸ»ú¿ô¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£ parameter ¤¬ * ¤Þ¤¿¤Ï @ ¤Ê¤é¤Ð¡¢°ÌÃ֥ѥé¥á¡¼¥¿¤Î¿ô¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£ parameter ¤¬ * ¤Þ¤¿¤Ï @ ¤¬Åº»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÇÛÎó̾¤Ê¤é¤Ð¡¢ÇÛÎóÃæ¤ÎÍ×ÁÇ¿ô¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£
- ${parameter#word}
- ${parameter##word}
- word ¤¬Å¸³«¤µ¤ì¡¢¥Ñ¥¹Ì¾Å¸³«¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ê¥Ñ¥¿¡¼¥ó¤òºî¤ê¤Þ¤¹¡£ ¤³¤Î¥Ñ¥¿¡¼¥ó¤¬ parameter ¤ÎÃͤÎÀèÆ¬Éôʬ¤È¥Þ¥Ã¥Á¤¹¤ë¾ì¹ç¡¢Å¸³«¤·¤ÆÆÀ¤é¤ì¤ëÃÍ¤Ï parameter ¤òŸ³«¤·¤¿Ãͤ«¤éºÇû°ìÃץѥ¿¡¼¥ó (``#''¤Î¾ì¹ç) ¤Þ¤¿¤ÏºÇŰìÃץѥ¿¡¼¥ó (``##'' ¤Î¾ì¹ç) ¤ò¼è¤ê½ü¤¤¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤Ç¤¢¤ë¾ì¹ç¡¢ ¥Ñ¥¿¡¼¥ó¤òºï½ü¤¹¤ëÁàºî¤ÏÁ´¤Æ¤Î°ÌÃ֥ѥé¥á¡¼¥¿¤Ë½çÈÖ¤ËŬÍѤµ¤ì¡¢ Ÿ³«·ë²Ì¤Ï¥ê¥¹¥È¤È¤·¤ÆÆÀ¤é¤ì¤Þ¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤¬Åº»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÇÛÎóÊÑ¿ô¤Ç¤¢¤ë¾ì¹ç¡¢ ¥Ñ¥¿¡¼¥ó¤òºï½ü¤¹¤ëÁàºî¤ÏÇÛÎó¤ÎÁ´¤Æ¤ÎÍ×ÁǤ˽çÈÖ¤ËŬÍѤµ¤ì¡¢ Ÿ³«·ë²Ì¤Ï¥ê¥¹¥È¤È¤·¤ÆÆÀ¤é¤ì¤Þ¤¹¡£
- ${parameter%word}
- ${parameter%%word}
- word ¤¬Å¸³«¤µ¤ì¡¢¥Ñ¥¹Ì¾Å¸³«¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ê¥Ñ¥¿¡¼¥ó¤òºî¤ê¤Þ¤¹¡£ ¤³¤Î¥Ñ¥¿¡¼¥ó¤¬ parameter ¤òŸ³«¤·¤¿ÃͤÎËöÈø¤ÎÉôʬ¤È¥Þ¥Ã¥Á¤¹¤ë¾ì¹ç¡¢Å¸³«·ë²Ì¤Ï parameter ¤òŸ³«¤·¤¿Ãͤ«¤éºÇû°ìÃץѥ¿¡¼¥ó (``%'' ¤Î¾ì¹ç) ¤Þ¤¿¤ÏºÇŰìÃץѥ¿¡¼¥ó (``%%'' ¤Î¾ì¹ç) ¤ò¼è¤ê½ü¤¤¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤Ç¤¢¤ë¾ì¹ç¡¢ ¥Ñ¥¿¡¼¥ó¤òºï½ü¤¹¤ëÁàºî¤ÏÁ´¤Æ¤Î°ÌÃ֥ѥé¥á¡¼¥¿¤Ë½çÈÖ¤ËŬÍѤµ¤ì¡¢ Ÿ³«·ë²Ì¤Ï¥ê¥¹¥È¤È¤·¤ÆÆÀ¤é¤ì¤Þ¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤¬Åº»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÇÛÎóÊÑ¿ô¤Ç¤¢¤ë¾ì¹ç¡¢ ¥Ñ¥¿¡¼¥ó¤òºï½ü¤¹¤ëÁàºî¤ÏÇÛÎó¤ÎÁ´¤Æ¤ÎÍ×ÁǤ˽çÈÖ¤ËŬÍѤµ¤ì¡¢ Ÿ³«·ë²Ì¤Ï¥ê¥¹¥È¤È¤·¤ÆÆÀ¤é¤ì¤Þ¤¹¡£
- ${parameter/pattern/string}
- ${parameter//pattern/string}
- pattern ¤¬Å¸³«¤µ¤ì¡¢ ¥Ñ¥¹Ì¾Å¸³«¤Î¾ì¹ç¤ÈƱ¤¸¤è¤¦¤Ê¥Ñ¥¿¡¼¥ó¤òºî¤ê¤Þ¤¹¡£ parameter ¤ÎŸ³«¤¬¹Ô¤ï¤ì¡¢ ¤½¤ÎÃͤΤ¦¤Á pattern ¤ËºÇŰìÃפ¹¤ëÉôʬ¤¬ string ¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£ Á°¼Ô¤Î·Á¼°¤Î¾ì¹ç¤Ë¤Ï¡¢ºÇ½é¤Ë¥Þ¥Ã¥Á¤·¤¿Éôʬ¤À¤±¤¬ÃÖ´¹¤µ¤ì¤Þ¤¹¡£ ¸å¼Ô¤Î·Á¼°¤Î¾ì¹ç¤Ë¤Ï¡¢¥Þ¥Ã¥Á¤·¤¿Éôʬ¤ÏÁ´¤Æ string ¤ËÃÖ´¹¤µ¤ì¤Þ¤¹¡£ pattern ¤¬ # ¤Ç»Ï¤Þ¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥¿¡¼¥ó¤Ï parameter ¤òŸ³«¤·¤¿ÃͤÎÀèÆ¬¤Ë¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ pattern ¤¬ % ¤Ç»Ï¤Þ¤ë¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥¿¡¼¥ó¤Ï parameter ¤òŸ³«¤·¤¿ÃͤÎËöÈø¤Ë¥Þ¥Ã¥Á¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ string ¤¬¶õ¤Î¾ì¹ç¤Ë¤Ï pattern ¤Ë¥Þ¥Ã¥Á¤·¤¿Éôʬ¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£ ¤Þ¤¿¤³¤Î¾ì¹ç¤Ë¤Ï¡¢pattern ¤Î¸å¤Ë³¤¯ / ¤Ï¾Êά²Äǽ¤Ç¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤Ç¤¢¤ë¾ì¹ç¡¢ÃÖ´¹Áàºî¤ÏÁ´¤Æ¤Î°ÌÃ֥ѥé¥á¡¼¥¿¤Ë½çÈÖ¤ËŬÍѤµ¤ì¡¢ Ÿ³«·ë²Ì¤Ï¥ê¥¹¥È¤È¤·¤ÆÆÀ¤é¤ì¤Þ¤¹¡£ parameter ¤¬ @ ¤Þ¤¿¤Ï * ¤¬Åº»ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÇÛÎóÊÑ¿ô¤Ç¤¢¤ë¾ì¹ç¡¢ ÃÖ´¹Áàºî¤ÏÇÛÎó¤ÎÁ´¤Æ¤ÎÍ×ÁǤ˽çÈÖ¤ËŬÍѤµ¤ì¡¢ Ÿ³«·ë²Ì¤Ï¥ê¥¹¥È¤È¤·¤ÆÆÀ¤é¤ì¤Þ¤¹¡£
¥³¥Þ¥ó¥ÉÃÖ´¹
¥³¥Þ¥ó¥ÉÃÖ´¹ (command substitution) ¤òÍѤ¤¤ë¤È¡¢ ¥³¥Þ¥ó¥É̾¤ò¥³¥Þ¥ó¥É¤Î½ÐÎϤÇÃÖ¤´¹¤¨¤Ç¤¤Þ¤¹¡£ ¥³¥Þ¥ó¥ÉÃÖ´¹¤Ë¤Ï°Ê²¼¤Î 2 ¤Ä¤Î·Á¼°¤¬¤¢¤ê¤Þ¤¹:
$(command)
- `command`
bash ¤Ë¤è¤ëŸ³«¤Ï¡¢command ¤Î¼Â¹Ô¤ª¤è¤Ó¥³¥Þ¥ó¥ÉÃÖ´¹¤ÎÉôʬ¤ò ¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎϤÈÃÖ´¹¤¹¤ë¤³¤È¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎºÝ¡¢ËöÈø¤Î²þ¹Ôʸ»ú¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£ ʸ»úÎó¤ÎÅÓÃæ¤Ë¤¢¤ë²þ¹Ôʸ»ú¤Ïºï½ü¤µ¤ì¤Þ¤»¤ó¤¬¡¢ ñ¸ìʬ³ä¤ÎºÝ¤Ëºï½ü¤µ¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¥³¥Þ¥ó¥ÉÃÖ´¹ $(cat file) ¤Ï¡¢Æ±¤¸°ÕÌ£¤ò»ý¤Á¡¢ ¤·¤«¤â¹â®¤Ê $(< file) ¤ËÃÖ¤´¹¤¨²Äǽ¤Ç¤¹¡£
¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤ò»È¤¦¸Å¤¤·Á¼°¤ÎÃÖ´¹¤òÍѤ¤¤¿¤È¤¡¢ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ïʸ»úÄ̤ê¤Î°ÕÌ£¤òÊݤÁ¤Þ¤¹¤¬¡¢ $, `, \ ¤ÎÁ°¤Ë¤¢¤ë¾ì¹ç¤ÏÎã³°¤È¤Ê¤ê¤Þ¤¹¡£ ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤¬Á°ÃÖ¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤¬¤¢¤ë¤È¡¢ ¤½¤³¤Ç¥³¥Þ¥ó¥ÉÃÖ´¹¤ÏÊĤ¸¤é¤ì¤Þ¤¹¡£ $(command) ¤È¤¤¤¦·Á¼°¤òÍѤ¤¤¿¤È¤¤Ï¡¢ ³ç¸Ì¤Î´Ö¤Ë¤¢¤ëÁ´¤Æ¤Îʸ»ú¤¬¥³¥Þ¥ó¥É¤È¤Ê¤ê¤Þ¤¹¡£ ÆÃḚ̂·¤¤¤µ¤ì¤ëʸ»ú¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¥³¥Þ¥ó¥ÉÃÖ´¹¤ÏÆþ¤ì»Ò¤Ë¤Ç¤¤Þ¤¹¡£ ¥Ð¥Ã¥¯¥¯¥©¡¼¥È·Á¼°¤Î»þ¤ËÆþ¤ì»Ò¤ò¹Ô¤¦¤Ë¤Ï¡¢ Æâ¦¤Î¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤ò¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ç¥¨¥¹¥±¡¼¥×¤·¤Þ¤¹¡£
ÃÖ´¹¤¬¥À¥Ö¥ë¥¯¥©¡¼¥ÈÆâÉô¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ ÃÖ´¹¤Î·ë²Ì¤ËÂФ¹¤ëñ¸ìʬ³ä¤È¥Ñ¥¹Ì¾Å¸³«¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£
»»½Ñ¼°Å¸³«
»»½Ñ¼°Å¸³«¤ò»È¤¦¤È¡¢»»½Ñ¼°¤òɾ²Á¤·¤Æ¡¢¤½¤Î·ë²Ì¤ËÃÖ´¹¤Ç¤¤Þ¤¹¡£ »»½Ñ¼°Å¸³«¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼¡¤Ë¼¨¤·¤Þ¤¹:
$((expression))
expression ¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥ÈÆâÉô¤Ë¤¢¤ë¾ì¹ç¤ÈƱÍͤ˰·¤ï¤ì¤Þ¤¹¤¬¡¢ ³ç¸Ì¤ÎÆâ¦¤Î¥À¥Ö¥ë¥¯¥©¡¼¥È¤¬ÆÃḚ̂·¤¤¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¼°¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î¥È¡¼¥¯¥ó¤ËÂФ·¤Æ¡¢ ¥Ñ¥é¥á¡¼¥¿Å¸³«¡¦Ê¸»úÎ󟳫¡¦¥³¥Þ¥ó¥ÉÃÖ´¹¡¦¥¯¥©¡¼¥È¤Îºï½ü¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ »»½Ñ¼°ÃÖ´¹¤ÏÆþ¤ì»Ò¤Ë¤Ç¤¤Þ¤¹¡£
ɾ²Á¤Ï¸å½Ò¤Î »»½Ñ¼°É¾²Á ¤Ç¼¨¤¹µ¬Â§¤Ë´ð¤Å¤¤¤Æ¹Ô¤ï¤ì¤Þ¤¹¡£ expression ¤¬ÉÔÀµ¤Ç¤¢¤ì¤Ð¡¢ bash ¤Ïɾ²Á¤Î¼ºÇÔ¤ò¼¨¤¹¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¡¢ÃÖ´¹¤òÁ´¤¯¹Ô¤¤¤Þ¤»¤ó¡£
¥×¥í¥»¥¹ÃÖ´¹
¥×¥í¥»¥¹ÃÖ´¹ (process substitution) ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Î¤Ï¡¢ ̾Á°ÉÕ¤¥Ñ¥¤¥× (FIFO) ¤Þ¤¿¤Ï̾Á°ÉÕ¤¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¤Î /dev/fd ¥á¥½¥Ã¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤¹¡£¤³¤ì¤Ï <(list) ¤Þ¤¿¤Ï >(list) ¤Î·Á¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥×¥í¥»¥¹ list ¤Ï¡¢¤½¤ÎÆþÎϤä½ÐÎϤ¬ FIFO ¤Þ¤¿¤Ï /dev/fd Ãæ¤Î ²¿¤é¤«¤Î¥Õ¥¡¥¤¥ë¤ËÀܳ¤µ¤ì¤¿¾õÂ֤Ǽ¹Ԥµ¤ì¤Þ¤¹¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï¡¢Å¸³«¤Î·ë²Ì¤È¤·¤Æ¡¢ °ú¤¿ô¤Î¤«¤¿¤Á¤Ç¸½ºß¤Î¥³¥Þ¥ó¥É¤ËÅϤµ¤ì¤Þ¤¹¡£ >(list) ¤Î·Á¼°¤ò»È¤Ã¤¿¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤¹þ¤ß¤Ï list ¤Ø¤ÎÆþÎϤȤʤê¤Þ¤¹¡£ <(list) ¤Î·Á¼°¤ò»È¤Ã¤¿¾ì¹ç¡¢ °ú¤¿ô¤È¤·¤ÆÅϤµ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï list ¤Î½ÐÎϤòÆÀ¤ë¤¿¤á¤ËÆÉ¤ß¹þ¤Þ¤ì¤Þ¤¹¡£
ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¥×¥í¥»¥¹ÃÖ´¹ (process substitution) ¤Ï¡¢ ¥Ñ¥é¥á¡¼¥¿Å¸³«¡¦ÊÑ¿ôŸ³«¡¦¥³¥Þ¥ó¥ÉÃÖ´¹¡¦»»½Ñ¼°Å¸³«¤ÈƱ»þ¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£
ñ¸ì¤Îʬ³ä
¥·¥§¥ë¤Ï¥Ñ¥é¥á¡¼¥¿Å¸³«¡¦¥³¥Þ¥ó¥ÉÃÖ´¹¡¦»»½Ñ¼°Å¸³« (¥À¥Ö¥ë¥¯¥©¡¼¥È¤ÎÆâÉô¤Ç¤Ï¤³¤ì¤é¤ÎŸ³«¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó) ¤Î·ë²Ì¤ò¥¹¥¥ã¥ó¤·¡¢ ñ¸ìʬ³ä ¤ò¹Ô¤¤¤Þ¤¹¡£ ¥·¥§¥ë¤Ï IFS ¤Î¤½¤ì¤¾¤ì¤Îʸ»ú¤ò¶èÀÚ¤êʸ»ú¤È¤·¤Æ°·¤¤¡¢ ¾¤ÎŸ³«¤Î·ë²Ì¤ò¤³¤ì¤é¤Î