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


10.6 ÂåÆþ

Îó¤Ë¤¤¤¯¤Ä¤«¤ÎÊÑ¿ô¤òÀßÄꤹ¤ë¤È¤­¡¤É¾²Á¤Î½ç½ø¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Ð¤¨ ¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡¥Î㤨¤Ð¡¤‘foo=1 foo=2; echo $foo’¤Ï¡¤Solaris¤Î sh¤Ç¤Ï‘1’¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¤Bash¤Ç¤Ï‘2’¤Ë¤Ê¤ê¤Þ¤¹¡¥½ç½ø¤ò¶¯ À©¤¹¤ë¤¿¤á¤Ë‘;’¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥‘foo=1; foo=2; echo $foo’¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡¥

subdir/program¤ò¸«¤Ä¤±¤ë¤¿¤á¤Ë¡¤°Ê²¼¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ ¤¤¡¥

PATH=subdir$PATH_SEPARATOR$PATH program

¤³¤ì¤ÏZsh 3.0.6¤Ç¤Ïưºî¤·¤Þ¤»¤ó¡¥Âå¤ï¤ê¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤ò»ÈÍѤ·¤Æ¤¯¤À ¤µ¤¤¡¥

(PATH=subdir$PATH_SEPARATOR$PATH; export PATH; exec program)

ÂåÆþ¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡¥Ash 0.2¤Ï¥¹¥Æ¡¼¥¿¥¹ ¤òÊѹ¹¤»¤º¡¤ºÇ¸å¤Îʸ¤ËÅÁȤ·¤Þ¤¹¡¥

$ false || foo=bar; echo $?
1
$ false || foo=`:`; echo $?
0

¤½¤·¤Æ¡¤¹¹¤Ë°­¤¤¤³¤È¤Ë¡¤QNX 4.25¤Ï¤¢¤é¤æ¤ë¾ì¹ç¤Ç½ªÎ»¥¹¥Æ¡¼¥¿¥¹ ¤ò0¤ËÀßÄꤷ¤Þ¤¹¡¥

$ foo=`exit 1`; echo $?
0

¥Ç¥Õ¥©¥ë¥ÈÃͤòÂåÆþ¤¹¤ë¤¿¤á¤Ë¡¤°Ê²¼¤Î¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥

  1. ¥Ç¥Õ¥©¥ë¥ÈÃͤ¬¥ê¥Æ¥é¥ë¤ÇÊĤ¸¥«¥Ã¥³¤ò´Þ¤Þ¤Ê¤¤¾ì¹ç¤Ï°Ê²¼¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
    : ${var='my literal'}
    
  2. ¥Ç¥Õ¥©¥ë¥ÈÃͤ¬ÊĤ¸¥«¥Ã¥³¤ò´Þ¤Þ¤º¡¤Å¸³«¤µ¤ì¤º¡¤½é´ü²½¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤¬IFS ¤Çʬ¤±¤é¤ì¤Æ¤¤¤Ê¤¤(¤¹¤Ê¤ï¤Á¡¤¥ê¥¹¥È¤Ç¤Ê¤¤)¾ì¹ç¡¤°Ê²¼¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
    : ${var="$default"}
    
  3. ¥Ç¥Õ¥©¥ë¥ÈÃͤ¬ÊĤ¸¥«¥Ã¥³¤ò´Þ¤Þ¤º¡¤Å¸³«¤µ¤ì¤º¡¤½é´ü²½¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤¬IFS ¤Çʬ¤±¤é¤ì¤ë(¤¹¤Ê¤ï¤Á¡¤¥ê¥¹¥È¤Î)¾ì¹ç¡¤°Ê²¼¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
    var=${var="$default"}
    
  4. ¥Ç¥Õ¥©¥ë¥ÈÃͤ¬ÊĤ¸¥«¥Ã¥³¤ò´Þ¤à¾ì¹ç¡¤°Ê²¼¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥
    test "${var+set}" = set || var='${indirection}'
    

¤Û¤È¤ó¤É¤Î¾ì¹ç¡¤‘var=${var="$default"}’¤ÇÎɤ¤¤Î¤Ç¤¹¤¬¡¤ÂÌÌܤʤȤ­ ¤Ï¸å¼Ô¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥ÀµÅöÀ­¤Î¤¿¤á¤Î¡¤ ‘${var:-value}’¤È‘${var=value}’ ¤Î ¹àÌܤϡ¤See Shell Substitutions.