Provided by: manpages-zh_1.5-1_all bug
 

NAME

        bash - GNU Bourne-Again SHell (GNU å‘½ä»¤è§£é‡Šç¨‹åº â€œBourne二世â€)
 
       (SYNOPSIS)
        bash [options] [file]
 
            (COPYRIGHT)
        Bash is Copyright (C) 1989-2002 by the Free Software Foundation, Inc.
 
       (DESCRIPTION)
        Bash                             是一个与                            sh
        兼容的命令解释程åºï¼Œå¯ä»¥æ‰§è¡Œä»Žæ ‡å‡†è¾“入或者文件中读å–的命令。       Bash
        也整åˆäº† Korn å’Œ C Shell (ksh å’Œ csh) 中的优秀特性。
 
        Bash  的目标是æˆä¸ºéµ  IEEE  POSIX  Shell and Tools specification (IEEE
        Working Group 1003.2,å¯ç§»æ¤æ“作系统规约: shell 和工具) 的实现。
 
       (OPTIONS)
        除了在   set   内建命令的文档中讲述的å•字符选项   (option)   之外,bash
        在å¯åŠ¨æ—¶è¿˜è§£é‡Šä¸‹åˆ—é€‰é¡¹ã€‚
 
        -c string 如果有   -c  选项,那么命令将从  string  中读å–。如果  string
                  åŽé¢æœ‰å‚æ•°    (argument),它们将用于给ä½ç½®å‚æ•°    (positional
                  parameter,以 $0 起始) 赋值。
        -i        如果有 -i 选项,shell 将交互地执行 ( interactive )。
        -l        选项使得  bash  以类似登录  shell  (login  shell)  的方å¼å¯åЍ
                  (å‚è§ä¸‹é¢çš„      (INVOCATION) 章节)。
        -r        如果有 -r 选项,shell æˆä¸ºå—é™çš„ ( restricted  )  (å‚è§ä¸‹é¢çš„
                             shell(RESTRICTED SHELL) 章节)。
        -s        如果有                                                     -s
                  选项,或者如果选项处ç†å®Œä»¥åŽï¼Œæ²¡æœ‰å‚数剩余,那么命令将从标准输入读å–。
                  这个选项å…许在å¯åŠ¨ä¸€ä¸ªäº¤äº’ shell æ—¶å¯ä»¥è®¾ç½®ä½ç½®å‚数。
        -D        呿 ‡å‡†è¾“出打å°ä¸€ä¸ªä»¥  $  为å‰å¯¼çš„,以åŒå¼•å·å¼•用的字符串列表。
                  这是在当å‰è¯­è¨€çŽ¯å¢ƒä¸æ˜¯ C 或 POSIX 时,脚本中需è¦èŠ¬æ°²æ·–å€
                  这个选项éšå«äº† -n 选项;ä¸ä¼šæ‰§è¡Œå‘½ä»¤ã€‚
        [-+]O [shopt_option]
                  shopt_option  是一个  shopt  å†…å»ºå‘½ä»¤å¯æŽ¥å—的选项 (å‚è§ä¸‹é¢çš„
                  shell         (SHELL  BUILTIN   COMMANDS)   章节)。   如果有
                  shopt_option,-O     将设置那个选项的å–值;    +O    å–æ¶ˆå®ƒã€‚
                  如果没有给出                              shopt_option,shopt
                  将在标准输出上打å°è®¾ä¸ºå…许的选项的å称和值。   如果å¯åŠ¨é€‰é¡¹æ˜¯
                  +O,输出将以一ç§å¯ä»¥é‡ç”¨ä¸ºè¾“å…¥çš„æ ¼å¼æ˜¾ç¤ºã€‚
        --        --        标志选项的结æŸï¼Œç¦æ­¢å…¶ä½™çš„选项处ç†ã€‚任何         --
                  之åŽçš„傿•°å°†ä½œä¸ºæ–‡ä»¶åå’Œå‚æ•°å¯¹å¾…ã€‚å‚æ•° - 与此等价。
 
        Bash
        也解释一些多字节的选项。在命令行中,这些选项必须置于需è¦è¢«è¯†åˆ«çš„å•å­—ç¬¦å‚æ•°ä¹‹å‰ã€‚
 
        --dump-po-strings
               等价于 -D,但是输出是 GNU gettext po (å¯ç§»æ¤å¯¹è±¡) 文件格å¼
        --dump-strings
               等价于 -D
        --help 在标准输出显示用法信æ¯å¹¶æˆåŠŸé€€å‡º
        --init-file file
        --rcfile file
               如果             shell            是交互的,执行            file
               ä¸­çš„å‘½ä»¤ï¼Œè€Œä¸æ˜¯æ ‡å‡†çš„个人åˆå§‹åŒ–文件    ~/.bashrc    (å‚è§ä¸‹é¢çš„
                    (INVOCATION) 章节)
 
        --login
               等价于 -l
 
        --noediting
               如果 shell 是交互的,ä¸ä½¿ç”¨ GNU readline 库æ¥è¯»å‘½ä»¤è¡Œ
 
        --noprofile
               ä¸è¯»å–系统范围的å¯åŠ¨æ–‡ä»¶   /etc/profile   或者任何个人åˆå§‹åŒ–文件
               ~/.bash_profile,  ~/.bash_login,  或  ~/.profile  。默认情况下,
               bash  在作为登录 shell å¯åŠ¨æ—¶è¯»å–这些文件 (å‚è§ä¸‹é¢çš„      (INVO-
               CATION) 章节)
 
        --norc 如果   shell    是交互的,ä¸è¯»å–/执行个人åˆå§‹åŒ–文件    ~/.bashrc
               这个选项在 shell 以 sh 命令å¯åŠ¨æ—¶æ˜¯é»˜è®¤å¯ç”¨çš„
 
        --posix
               如果默认æ“作与     POSIX    1003.2    标准ä¸åŒçš„è¯ï¼Œæ”¹å˜    bash
               的行为æ¥ç¬¦åˆæ ‡å‡† (posix mode)
 
        --restricted
               shell æˆä¸ºå—é™çš„ (å‚è§ä¸‹é¢çš„            shell(RESTRICTED SHELL) 章节)
 
        --rpm-requires
               产生一个为使脚本è¿è¡Œï¼Œéœ€è¦çš„æ–‡ä»¶çš„列表。    这个选项包å«äº†    -n
               选项。  它是为了é¿å…进行编译期错误检测时的é™åˆ¶ï¼ƒ  Backticks,  []
               tests,  还有 evals ä¸ä¼šè¢«è§£é‡Šï¼Œä¸€äº›ä¾èµ–关系å¯èƒ½ä¸¢å¤±
 
        --verbose
               等价于 -v
 
        --version
               在标准输出显示此 bash 的版本信æ¯å¹¶æˆåŠŸé€€å‡ºã€‚
 
       (ARGUMENTS)
        如果选项处ç†ä¹‹åŽä»æœ‰å‚数剩余,并且没有指定        -c        或       -s
        é€‰é¡¹ï¼Œç¬¬ä¸€ä¸ªå‚æ•°å°†å‡å®šä¸ºä¸€ä¸ªåŒ…å«  shell  命令的文件的å字。  如果  bash
        æ˜¯ä»¥è¿™ç§æ–¹å¼å¯åŠ¨çš„ï¼Œ                                                 $0
        将设置为这个文件的å字,ä½ç½®å‚æ•°å°†è®¾ç½®ä¸ºå‰©ä½™çš„å…¶ä»–å‚æ•°ã€‚           Bash
        从这个文件中读å–并执行命令,然åŽé€€å‡ºã€‚                             Bash
        çš„é€€å‡ºçŠ¶æ€æ˜¯è„šæœ¬ä¸­æ‰§è¡Œçš„æœ€åŽä¸€ä¸ªå‘½ä»¤çš„退出状æ€ã€‚
        å¦‚æžœæ²¡æœ‰æ‰§è¡Œå‘½ä»¤ï¼Œé€€å‡ºçŠ¶æ€æ˜¯0。
        å°è¯•的步骤是先试图打开在当å‰ç›®å½•中的这个文件,接下æ¥ï¼Œ
        如果没有找到,shell å°†æœç´¢è„šæœ¬çš„ PATH 环境å˜é‡ä¸­çš„路径。
 
       (INVOCATION)
        login   shell  登录  shellï¼Œå‚æ•°é›¶çš„第一个字符是  -  ,或者å¯åŠ¨æ—¶æŒ‡å®šäº†
        --login 选项的 shell。
 
        interactive                                                      交互的
        shell,是一个å¯åŠ¨æ—¶æ²¡æœ‰æŒ‡å®šéžé€‰é¡¹çš„傿•°ï¼Œå¹¶ä¸”没有指定                -c
        选项,标准输出和标准输入都连接到了终端    (在     isatty(3)     中判定)
        çš„shell,或者å¯åŠ¨æ—¶æŒ‡å®šäº†  -i  选项的  shell。如果  bash 是交互的, PS1
        环境å˜é‡å°†è¢«è®¾ç½®ï¼Œå¹¶ä¸”     $-     åŒ…å«     i      ,å…许一个      shell
        脚本或者一个å¯åŠ¨æ–‡ä»¶æ¥æ£€æµ‹è¿™ä¸€çжæ€ã€‚
 
        ä¸‹åˆ—æ®µè½æè¿°äº†                                                     bash
        如何执行它的å¯åŠ¨æ–‡ä»¶ã€‚å¦‚æžœè¿™äº›å¯åŠ¨æ–‡ä»¶ä¸­çš„ä»»ä¸€ä¸ªå­˜åœ¨ä½†æ˜¯ä¸å¯è¯»å–, bash
        将报告一个错误。文件åä¸­çš„æ³¢æµªå·  (~,tilde) å°†åƒ EXPANSION 章节中 Tilde
        Expansion 段æè¿°çš„那样展开。
 
        当  bash  是作为交互的登录   shell   å¯åŠ¨çš„ï¼Œæˆ–è€…æ˜¯ä¸€ä¸ªéžäº¤äº’çš„   shell
        但是指定了     --login     选项,     它首先读å–并执行     /etc/profile
        中的命令,åªè¦é‚£ä¸ªæ–‡ä»¶å­˜åœ¨ã€‚       读å–那个文件之åŽï¼Œå®ƒä»¥å¦‚ä¸‹çš„é¡ºåºæŸ¥æ‰¾
        ~/.bash_profile,          ~/.bash_login,         和         ~/.profile,
        从存在并且å¯è¯»çš„第一个文件中读å–并执行其中的命令。          --noprofile
        选项å¯ä»¥ç”¨æ¥åœ¨ shell å¯åŠ¨æ—¶é˜»æ­¢å®ƒè¿™æ ·åšã€‚
 
        当一个登录    shell   退出时,   bash   读å–并执行文件   ~/.bash_logout
        中的命令,åªè¦å®ƒå­˜åœ¨ã€‚
 
        当一个交互的 shell 但䏿˜¯ç™»å½•  shell  å¯åŠ¨æ—¶ï¼Œ  bash  从文件  ~/.bashrc
        中读å–并执行命令,åªè¦å®ƒå­˜åœ¨ã€‚å¯ä»¥ç”¨     --norc    选项æ¥é˜»æ­¢å®ƒè¿™æ ·åšã€‚
        --rcfile file  选项将强制  bash  读å–并执行文件  file  ä¸­çš„å‘½ä»¤ï¼Œè€Œä¸æ˜¯
        ~/.bashrc 中的。
 
        当        bash        以éžäº¤äº’的方å¼å¯åŠ¨æ—¶ï¼Œä¾‹å¦‚åœ¨è¿è¡Œä¸€ä¸ª        shell
        脚本时,它在环境中查找å˜é‡                                     BASH_ENV
        ,如果它存在则将它的值展开,使用展开的值作为一个文件的å称,读å–并执行。
        Bash è¿ä½œçš„è¿‡ç¨‹å°±å¦‚åŒæ‰§è¡Œäº†ä¸‹åˆ—命令:
               if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
        但是没有使用 PATH å˜é‡çš„å€¼æ¥æœç´¢é‚£ä¸ªæ–‡ä»¶å。
 
        如果     bash     以åç§°     sh     å¯åŠ¨ï¼Œå®ƒè¯•å›¾æ¨¡ä»¿     (mimic)     sh
        历å²ç‰ˆæœ¬çš„å¯åŠ¨è¿‡ç¨‹ï¼Œå°½å¯èƒ½åœ°ç›¸ä¼¼ï¼ŒåŒæ—¶ä¹Ÿéµ         POSIX        标准。
        当作为交互å¼ç™»å½•   shell   å¯åŠ¨æ—¶,或者是éžäº¤äº’但使用了   --login   选项
        å¯åŠ¨çš„æ—¶å€™,它首先å°è¯•读å–并执行文件    /etc/profile    å’Œ   ~/.profile,
        中的命令.     选项    --noprofile    用于é¿å…è¿™ç§è¡Œä¸º.当使用命令     sh
        æ¥å¯åŠ¨ä¸€ä¸ªäº¤äº’å¼çš„     shell     æ—¶,     bash     查找环境å˜é‡     ENV,
        如果有定义的è¯å°±æ‰©å±•它的值,ç„¶åŽä½¿ç”¨æ‰©å±•åŽçš„值作为è¦è¯»å–和执行的文件
        çš„åç§°.由于使用  sh  å¯åŠ¨çš„ shell ä¸ä¼šè¯»å–和执行任何其他的å¯åŠ¨æ–‡ä»¶,选项
        --rcfile      没有æ„义.使用åç§°      sh      å¯åŠ¨çš„éžäº¤äº’çš„       shell
        ä¸ä¼šè¯»å–任何其他å¯åŠ¨æ–‡ä»¶.当以  sh  å¯åŠ¨æ—¶,  bash 在读å–å¯åŠ¨æ–‡ä»¶ä¹‹åŽè¿›å…¥
        posix 模å¼.
 
        当 bash 以 posix 模å¼å¯åŠ¨æ—¶,(和使用  --posix  å‘½ä»¤è¡Œå‚æ•°æ•ˆæžœç›¸åŒ),它éµ
        POSIX       标准.       è¿™ç§æ¨¡å¼ä¸‹,äº¤äº’å¼      shell      扩展      ENV
        环境å˜é‡çš„值,读å–并执行以扩展åŽå€¼ä¸ºæ–‡ä»¶åçš„é…置文件.  ä¸ä¼šè¯»å–其他文件.
 
        Bash è¯•ç€æ£€æµ‹å®ƒæ˜¯ä¸æ˜¯ç”±è¿œç¨‹ shell 守护程åº,通常为 rshd å¯åŠ¨çš„.如果 bash
        å‘现它是由   rshd   å¯åŠ¨çš„,它将读å–并执行    ~/.bashrc    文件中的命令,
        åªè¦è¿™ä¸ªæ–‡ä»¶å­˜åœ¨å¹¶ä¸”å¯è¯».如果以  sh 命令å¯åЍ,它ä¸ä¼šè¿™æ ·åš.  选项 --norc
        å¯ä»¥ç”¨æ¥é˜»æ­¢è¿™ç§è¡Œä¸º,选项 --rcfile 用æ¥å¼ºåˆ¶è¯»å–å¦ä¸€ä¸ªæ–‡ä»¶,但是通常 rshd
        ä¸ä¼šå…许它们, 或者用它们æ¥å¯åЍ shell.
 
        如果   shell  是以与真实用户(组)  id  ä¸åŒçš„æœ‰æ•ˆç”¨æˆ·(组)  id  æ¥å¯åŠ¨çš„,
        并且没有 - 选项,那么它ä¸ä¼šè¯»å–å¯åŠ¨æ–‡ä»¶, 也ä¸ä¼šä»ŽçŽ¯å¢ƒä¸­ç»§æ‰¿ shell  函数.
        环境å˜é‡ä¸­å¦‚果出现  SHELLOPT,它将被忽略.有效用户 id 将设置为真实用户
        id.                          如果å¯åŠ¨æ—¶ç»™å‡ºäº†                         -
        选项,那么å¯åŠ¨æ—¶çš„è¡Œä¸ºæ˜¯ç±»ä¼¼çš„, 但是ä¸ä¼šé‡ç½®æœ‰æ•ˆç”¨æˆ· id.
 
       (DEFINITIONS)
        下列定义在文档余下部分中通用.
        blank    白
               一个空格或是 tab .
        wordè¯
               一个字符åºåˆ—,     shell    将它们视为一个结构å•å…ƒ.    也称为一个
               token片段。
        name    
               一个åªç”±å­—æ¯,数字和下划线构æˆçš„è¯,并且以字符或下划线起始.
               也称为一个 word identifier标识符.
        metacharacter        
               一个字符, å¦‚æžœä¸æ˜¯å¼•用的è¯, å°†æˆä¸ºè¯çš„分隔符. 它是如下字符之一:
               |  & ; ( ) < > space tab
        control operator                符
               一个 token(标识), 拥有控制功能. 它是如下符å·ä¹‹ä¸€:
               || & && ; ;; ( ) | <newline>
        Reserved       words(ä¿ç•™å­—)       是对      shell      有特殊æ„义的è¯.
        下列è¯è¢«è¯†åˆ«ä¸ºä¿ç•™çš„,    å¦‚æžœä¸æ˜¯å¼•用,     并䏔䏿˜¯ä¸€ä¸ªç®€å•命令的起始è¯
        (å‚è§ä¸‹é¢çš„   shel      ("SHELL   GRAMMAR")  ),  ä¹Ÿä¸æ˜¯  case  或者  for
        命令的第三个è¯:
 
        ! case  do done elif else esac fi for function if in select then  until
        while { } time [[ ]]
    Simple Commands            
        simple command(简å•命令) 是(å¯é€‰çš„)一系列å˜é‡èµ‹å€¼, ç´§æŽ¥ç€æ˜¯ blank(空格)
        分隔的è¯å’Œé‡å®šå‘,      ç„¶åŽä»¥ä¸€ä¸ª      control      operator      结æŸ.
        ç¬¬ä¸€ä¸ªè¯æŒ‡æ˜Žäº†è¦æ‰§è¡Œçš„命令,         它被作为第         0        ä¸ªå‚æ•°.
        å…¶ä½™è¯è¢«ä½œä¸ºè¿™ä¸ªå‘½ä»¤çš„傿•°.
 
        simple command 简å•命令的返回值是它的退出状æ€, 或是  128+n,  如果命令被
        signal(ä¿¡å·) n 结æŸçš„è¯.
 
    Pipelines    é“
        pipeline(管é“) 是一个或多个命令的åºåˆ—,用字符 | 分隔。管é“çš„æ ¼å¼æ˜¯è¿™æ ·:
 
               [time [-p]] [ ! ] command [ | command2 ... ]
 
        命令        command        的标准输出通过管é“连接到命令        command2
        的标准输入。连接是在命令指定的任何é‡å®šå‘之å‰è¿›è¡Œçš„(å‚è§ä¸‹é¢çš„  REDIREC-
        TION             
 
        如果ä¿ç•™å­—                                                            !
        作为管é“å‰ç¼€ï¼Œç®¡é“的退出状æ€å°†æ˜¯æœ€åŽä¸€ä¸ªå‘½ä»¤çš„退出状æ€çš„逻挤侵怠
        å¦åˆ™ï¼Œç®¡é“的退出状æ€å°±æ˜¯æœ€åŽä¸€ä¸ªå‘½ä»¤çš„。                          shell
        在返回退出状æ€å€¼ä¹‹å‰ï¼Œç­‰å¾…管é“中的所有命令返回。
 
        如果ä¿ç•™å­—                                                         time
        作为管é“å‰ç¼€ï¼Œç®¡é“中止åŽå°†ç»™å‡ºæ‰§è¡Œç®¡é“耗费的用户和系统时间。  选项   -p
        å°†ä½¿è¾“å‡ºç¬¦åˆ      POSIX      指定的格å¼ã€‚      环境å˜é‡      TIMEFORMAT
        å¯ä»¥è®¾ç½®ä¸ºä¸€ä¸ªæ ¼å¼å­—符串,指定时间信æ¯åº”当如何显示;å‚è§ä¸‹é¢çš„    Shell
        Variables            é‡ä¸­ TIMEFORMAT 的讲述。
 
        管é“中的æ¯ä¸ªå‘½ä»¤éƒ½ä½œä¸ºå•ç‹¬çš„è¿›ç¨‹æ¥æ‰§è¡Œ(å³ï¼Œåœ¨ä¸€ä¸ªå­ shell 中å¯åЍ)。
 
    Lists    列
        list(åºåˆ—)是一个或多个管é“,用æ“作符   ;,  &,  &&,  或  ||  分隔的åºåˆ—,
        并且å¯ä»¥é€‰æ‹©ç”¨ ;, &, 或 <newline>新行符结æŸ.
 
        这些åºåˆ—æ“作符中,   &&   å’Œ   ||   优先级相åŒï¼Œå…¶æ¬¡æ˜¯    ;    å’Œ    &,
        它们的优先级是相åŒçš„。
 
        åºåˆ—中å¯ä»¥æœ‰ä¸€ä¸ªæˆ–多个新行符æ¥åˆ†éš”å‘½ä»¤ï¼Œè€Œä¸æ˜¯ä½¿ç”¨åˆ†å·åˆ†éš”。
 
        如果一个命令是由控制æ“作符   &   结æŸçš„,   shell   将在åŽå°çš„å­   shell
        中执行这个命令。 shell ä¸ä¼šç­‰å¾…命令执行结æŸï¼Œè¿”å›žçŠ¶æ€æ€»æ˜¯  0ã€‚ä»¥åˆ†å·  ;
        åˆ†éš”çš„å‘½ä»¤ä¼šè¢«é¡ºåºæ‰§è¡Œï¼›shell
        会等待æ¯ä¸ªå‘½ä»¤ä¾æ¬¡ç»“æŸã€‚è¿”å›žçŠ¶æ€æ˜¯æœ€åŽæ‰§è¡Œçš„命令的返回状æ€ã€‚
 
        控制æ“作符 && å’Œ || 分别代表 AND å’Œ OR åºåˆ—。一个 AND åºåˆ—çš„å½¢å¼æ˜¯
 
               command1 && command2
 
        command2 åªæœ‰åœ¨ command1 返回 0 æ—¶æ‰è¢«æ‰§è¡Œã€‚
 
        一个 OR åºåˆ—çš„å½¢å¼æ˜¯
 
               command1 || command2
 
        command2  åªæœ‰åœ¨  command1   è¿”å›žéž   0   çŠ¶æ€æ—¶æ‰è¢«æ‰§è¡Œã€‚AND   å’Œ   OR
        åºåˆ—çš„è¿”å›žçŠ¶æ€æ˜¯åºåˆ—ä¸­æœ€åŽæ‰§è¡Œçš„命令的返回状æ€ã€‚
 
    Compound Commands            
        compound command(å¤åˆå‘½ä»¤) 是如下情况之一:
 
        (list) list    åºåˆ—å°†åœ¨ä¸€ä¸ªå­    shell   中执行。å˜é‡èµ‹å€¼å’Œå½±å“   shell
               环境å˜é‡çš„内建命令在命令结æŸåŽä¸ä¼šå†èµ·ä½œç”¨ã€‚
               返回值是åºåˆ—的返回值。
 
        { list; }
               list                      åºåˆ—å°†åœ¨å½“å‰                     shell
               环境中执行。åºåˆ—必须以一个新行符或分å·ç»“æŸã€‚      è¿™ç§åšæ³•ä¹Ÿç§°ä¸º
               group  command(命令组)。返回值是åºåˆ—的返回值。注æ„与元字符 ( å’Œ
               ä¸åŒï¼Œ        {         å’Œ         }         是         reserved
               words(ä¿ç•™å­—),必须出现在能够识别ä¿ç•™å­—的场åˆã€‚
               由于它们ä¸ä¼šäº§ç”Ÿæ–­è¯(cause                a                 word
               break),它们和åºåˆ—之间必须用空格分开。
 
        ((expression))
               è¡¨è¾¾å¼  expression  将被求值。求值规则在下é¢çš„             值(ARITH-
               METIC   EVALUATION)   章节中æè¿°ã€‚如果表达å¼çš„值éžé›¶ï¼Œè¿”回值就是
               0ï¼›å¦åˆ™è¿”回值是 1。这ç§åšæ³•å’Œ let "expression" 等价。
 
        [[ expression ]]
               返回    0   或   1,å–决于æ¡ä»¶è¡¨è¾¾å¼   expression   求值的情况。
               è¡¨è¾¾å¼æ˜¯ç”±ä¸‹é¢ CONDITIONAL EXPRESSIONS                章节中æè¿°çš„-
               语(primaries)          组æˆã€‚          [[          å’Œ         ]]
               中的è¯ä¸ä¼šè¿›è¡Œè¯çš„æ‹†åˆ†å’Œè·¯å¾„的扩展处ç†ï¼›                 而tilde
               æ‰©å±•ï¼Œå‚æ•°å’Œå˜é‡æ‰©å±•,算术扩展,命令替æ¢ï¼Œå‡½æ•°æ›¿æ¢å’Œå¼•用的去除则都将进行。
 
               当使用                 ==                 和                  !=
               æ“作符时,æ“作符å³è¾¹çš„字符串被认为是一个模å¼ï¼Œæ ¹æ®ä¸‹é¢   Pattern
               Matching(模å¼åŒ¹é…)   章节中的规则进行匹é…。   如果匹é…则返回值是
               0,å¦åˆ™è¿”回
               1。模å¼çš„任何部分å¯ä»¥è¢«å¼•用,强制使它作为一个字符串而被匹é…。
 
               表达å¼å¯ä»¥ç”¨ä¸‹åˆ—æ“作符结åˆèµ·æ¥ã€‚æ ¹æ®ä¼˜å…ˆçº§çš„é™åºåˆ—出如下:
 
               ( expression )
                      è¿”å›žè¡¨è¾¾å¼                                     expression
                      的值。括å·å¯ä»¥ç”¨æ¥æå‡æ“作符的优先级。
               ! expression
                      è¿”å›žçœŸï¼Œå¦‚æžœè¡¨è¾¾å¼ expression 返回å‡ã€‚
               expression1 && expression2
                      è¿”å›žçœŸï¼Œå¦‚æžœè¡¨è¾¾å¼ expression1 å’Œ expression2 都返回真。
               expression1 || expression2
                      è¿”å›žçœŸï¼Œå¦‚æžœè¡¨è¾¾å¼     expression1    或者    expression2
                      二者之一返回真。
 
               &&(与) å’Œ || æ“作符ä¸ä¼šå¯¹è¡¨è¾¾å¼ expression2  求值,如果  expres-
               sion1 å¯ä»¥å†³å®šæ•´ä¸ªæ¡ä»¶è¡¨è¾¾å¼çš„返回值的è¯ã€‚
 
        for name [ in word ] ; do list ; done
               in      之åŽçš„一系列è¯ä¼šè¢«æ‰©å±•,产生一个项目列表。å˜é‡      name
               è¢«ä¾æ¬¡èµ‹ä»¥è¿™ä¸ªåˆ—表中的æ¯ä¸ªå…ƒç´ ï¼Œ åºåˆ— list æ¯æ¬¡éƒ½è¢«æ‰§è¡Œã€‚如果 in
               word   被忽略,那么   for  命令é历  已设置的ä½ç½®å‚æ•°(positional
               parameter,å‚è§ä¸‹é¢çš„  PARAMETERS           为æ¯ä¸€ä¸ªæ‰§è¡Œä¸€æ¬¡åºåˆ—
               list。           返回值是最åŽä¸€ä¸ªå‘½ä»¤çš„返回值。如果           in
               之åŽçš„è¯æ‰©å±•的结果是空列表,就ä¸ä¼šæ‰§è¡Œä»»ä½•命令,返回值是 0。
 
        for (( expr1 ; expr2 ; expr3 )) ; do list ; done
               é¦–å…ˆï¼Œç®—æœ¯è¡¨è¾¾å¼ expr1 被根æ®ä¸‹é¢            值 (ARITHMETIC  EVALUA-
               TION“   中的规则进行求值。    ç„¶åŽç®—æœ¯è¡¨è¾¾å¼    expr2    被-
               环求值,直到它等于   0ã€‚æ¯æ¬¡   expr2    结果éžé›¶æ—¶ï¼Œåºåˆ—    list
               都被执行,                    ç®—æœ¯è¡¨è¾¾å¼                   expr3
               被求值。如果任何表达å¼è¢«å¿½ç•¥ï¼Œå°†è¢«è§†ä¸ºæ‰§è¡Œç»“果是             1。
               返回值是åºåˆ—     list     中被执行的最åŽä¸€ä¸ªå‘½ä»¤çš„返回值;或者是
               false,如果任何表达å¼éžæ³•çš„è¯ã€‚
 
        select name [ in word ] ; do list ; done
               in
               之åŽçš„一系列è¯ä¼šè¢«æ‰©å±•,产生一个项目列表。这个扩展åŽçš„è¯é›†åˆè¢«è¾“出到标准错误上,æ¯ä¸ªå‰é¢
               加上一个数字。如果 in  word  被忽略,将输出ä½ç½®å‚æ•°  (å‚è§ä¸‹é¢çš„
               PARAMETERS                 数            章节)。             PS3
               æç¤ºç¬¦å°†è¢«æ˜¾ç¤ºå‡ºæ¥ï¼Œç­‰å¾…从标准输入得到一行输入。如果
               输入是一个数字且显示中有对应的è¯ï¼Œé‚£ä¹ˆå˜é‡                  name
               的值将设置为这个è¯ã€‚如果输入一个空行,那么è¯å’Œæç¤ºç¬¦å°†å†æ¬¡æ˜¾ç¤ºå‡ºæ¥ã€‚如果读入了一个
               EOF,命令就结æŸã€‚            任何其他值将设置å˜é‡           name
               为空。读入的行ä¿å­˜ä¸ºå˜é‡        REPLY.         åºåˆ—         list
               åœ¨æ¯æ¬¡é€‰æ‹©ä¹‹åŽéƒ½ä¼šæ‰§è¡Œï¼Œç›´åˆ°æ‰§è¡Œäº†ä¸€ä¸ª   break   命令。   select
               çš„é€€å‡ºçŠ¶æ€æ˜¯åºåˆ—                                            list
               中执行的最åŽä¸€ä¸ªå‘½ä»¤çš„退出状æ€ï¼Œå¦‚果没有执行命令就是 0。
 
        case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
               case  命令首先扩展  word,  ç„¶åŽä¾æ¬¡è¯•ç€ç”¨æ¯ä¸ª pattern æ¥åŒ¹é…它,
               使用与路径扩展相åŒçš„匹é…规则(å‚è§ä¸‹é¢çš„    Pathname    Expansion
                          展
               章节)。如果找到一个匹é…,相应的åºåˆ—将被执行。找到一个匹é…之åŽï¼Œä¸ä¼šå†å°è¯•å…¶åŽçš„匹é…。
               如果没有模å¼å¯ä»¥åŒ¹é…,返回值是
               0。å¦åˆ™ï¼Œè¿”回åºåˆ—ä¸­æœ€åŽæ‰§è¡Œçš„命令的返回值。
 
        if list; then list; [ elif list; then list; ] ... [ else list; ] fi
               åºåˆ—    if    list    è¢«æ‰§è¡Œã€‚å¦‚æžœé€€å‡ºçŠ¶æ€æ˜¯    0,then     list
               将被执行。å¦åˆ™ï¼Œæ¯ä¸ª elif å°†è¢«ä¸€æ¬¡æ‰§è¡Œï¼Œå¦‚æžœé€€å‡ºçŠ¶æ€æ˜¯ 0,相应的
               then     list     将被执行,命令结æŸã€‚      å¦åˆ™ï¼Œelse      list
               将被执行,如果存在的è¯ã€‚
               é€€å‡ºçŠ¶æ€æ˜¯æœ€åŽæ‰§è¡Œçš„命令的退出状æ€ï¼Œæˆ–者是
               0,如果所有æ¡ä»¶éƒ½ä¸æ»¡è¶³ã€‚
 
        while list; do list; done
        until list; do list; done
               while 命令䏿–­åœ°æ‰§è¡Œåºåˆ— do list,直到åºåˆ—中最åŽä¸€ä¸ªå‘½ä»¤è¿”回 0。
               until 命令和 while  命令等价,除了对æ¡ä»¶çš„æµ‹è¯•æ°å¥½ç›¸åï¼›åºåˆ—  do
               list  执行直到åºåˆ—中最åŽä¸€ä¸ªå‘½ä»¤è¿”回éžé›¶çжæ€å€¼ã€‚  while å’Œ until
               å‘½ä»¤çš„é€€å‡ºçŠ¶æ€æ˜¯åºåˆ— do list  中最åŽä¸€ä¸ªå‘½ä»¤çš„退出状æ€ï¼Œ  或者是
               0,如果没有执行任何命令。
 
        [ function ] name () { list; }
               这样å¯ä»¥å®šä¹‰ä¸€ä¸ªå为  name  的函数。函数体  body 是包å«åœ¨ { å’Œ }
               之间的命令åºåˆ—          list。           在指定将           name
               作为一个命令è¿è¡Œçš„场åˆï¼Œè¿™ä¸ªåºåˆ—将被执行。
               å‡½æ•°çš„é€€å‡ºçŠ¶æ€æ˜¯å‡½æ•°ä½“æœ€åŽæ‰§è¡Œçš„命令的退出状æ€(å‚è§ä¸‹é¢çš„  FUNC-
               TIONS    章节)。
 
       (COMMENTS)
        在éžäº¤äº’çš„  shell  中或者使用内建命令 shopt å¯ç”¨äº† interactive_comments
        选项的交互的               shell                中,以                #
        èµ·å§‹çš„è¯ä½¿å¾—这个è¯å’Œæ‰€æœ‰åŒä¸€è¡Œä¸Šæ‰€æœ‰å‰©ä½™çš„字符都被忽略。没有å¯ç”¨ inter-
        active_comments  é€‰é¡¹çš„äº¤äº’å¼  shell   ä¸å…许出现注释。这个选项在交互å¼
        shell 中是默认å¯ç”¨çš„ (å‚è§ä¸‹é¢çš„ shell        (SHELL BUILTIN COMMANDS)
        章节)。
 
    (QUOTING)
        引用                                                            Quoting
        用æ¥åŽ»æŽ‰ç‰¹å®šå­—ç¬¦æˆ–è¯çš„特殊æ„义。引用å¯ä»¥ç”¨æ¥ç¦æ­¢å¯¹ç‰¹æ®Šå­—符的处ç†ï¼Œ
        阻止ä¿ç•™å­—被识别,还用æ¥é˜»æ­¢å‚数的扩展。
 
        上é¢åœ¨ DEFINITIONS    义中列出的æ¯ä¸ªå…ƒå­—符  metacharacters  对于  shell
        都有特殊æ„义。如果è¦è¡¨è¾¾å®ƒçš„æœ¬ä¹‰ï¼Œå¿…须引用它。
 
        åœ¨ä½¿ç”¨å‘½ä»¤è¡ŒåŽ†å²æ‰©å±•功能时,history        expansion       字符,通常是
        !,必须被引用,æ‰ä¸ä¼šè¿›è¡Œåކ岿‰©å±•。
 
        有三ç§å¼•用机制:转义字符 (escape character), å•引å·å’ŒåŒå¼•å·ã€‚
 
        ä¸€ä¸ªæœªè¢«å¼•ç”¨çš„åæ–œæ      (\)     是转义字符     escape      character。
        它ä¿ç•™å…¶åŽä¸‹ä¸€ä¸ªå­—ç¬¦çš„å­—é¢æ„义,除éžé‚£æ˜¯ä¸€ä¸ªæ–°è¡Œç¬¦ã€‚       如果       \
        和新行符æˆå¯¹å‡ºçŽ°ï¼Œå¹¶ä¸”åæ–œæ è‡ªèº«æ²¡æœ‰è¢«å¼•用,那么             \<newline>
        被视为续行标志 (æ„æ€æ˜¯ï¼Œå®ƒè¢«ä»Žè¾“å…¥æµä¸­åˆ é™¤å¹¶å¿½ç•¥äº†)。
 
        将字符放在å•引å·ä¹‹ä¸­ï¼Œå°†ä¿ç•™å¼•ç”¨ä¸­æ‰€æœ‰å­—ç¬¦çš„å­—é¢æ„义。å•引å·ä¸èƒ½åŒ…å«åœ¨å•引å·å¼•用之中,å³ä½¿å‰é¢åŠ ä¸Šäº†åæ–œæ ã€‚
 
        将字符放在åŒå¼•å·ä¸­ï¼ŒåŒæ ·ä¿ç•™æ‰€æœ‰å­—ç¬¦çš„å­—é¢æ„义,例外的情况是 $,  `,  å’Œ
        \。               字符               $               和               `
        在åŒå¼•å·ä¸­ä»ç„¶å…·æœ‰ç‰¹æ®Šæ„ä¹‰ã€‚åæ–œæ åªæœ‰åŽé¢æ˜¯ä¸‹åˆ—å­—ç¬¦æ—¶æ‰æœ‰ç‰¹æ®Šæ„义: $,
        `,              ",             \,             或             <newline>.
        åŒå¼•å·å¯ä»¥åŒ…å«åœ¨åŒå¼•å·å¼•用中,但è¦åœ¨å‰é¢åŠ ä¸Šä¸€ä¸ªåæ–œæ ã€‚
 
        ç‰¹æ®Šçš„å‚æ•°  *  å’Œ  @  在åŒå¼•å·ä¸­æœ‰ç‰¹æ®Šæ„义(å‚è§ä¸‹é¢çš„  PARAMETERS     æ•°
        章节)。
 
        å½¢å¼ä¸º              $'string'              çš„è¯ä¼šè¢«ç‰¹æ®Šå¤„ç†ã€‚它被扩展为
        stringï¼Œå…¶ä¸­çš„åæ–œæ è½¬ä¹‰å­—符          被替æ¢ä¸º          ANSI          C
        æ ‡å‡†ä¸­è§„å®šçš„å­—ç¬¦ã€‚åæ–œæ è½¬ä¹‰åºåˆ—,如果存在的è¯ï¼Œå°†åšå¦‚下转æ¢ï¼š
               \a     alert (bell) å“铃
               \b     backspace 回退
               \e     an escape character 字符 Esc
               \f     form feed 进纸
               \n     new line 新行符
               \r     carriage return 回车
               \t     horizontal tab 水平跳格
               \v     vertical tab 竖直跳格
               \\     backslash åæ–œæ 
               \'     single quote å•引å·
               \nnn   一个八比特字符,它的值是八进制值 nnn (一到三个数字)。
               \xHH   一个八比特字符,它的值是å六进制值                     HH
                      (一到两个å六进制数字)。
               \cx    一个 ctrl-x 字符
 
        扩展结果是å•引å·å¼•ç”¨çš„ï¼Œå°±å¥½åƒ $ 符å·ä¸å­˜åœ¨ä¸€æ ·ã€‚
 
        åŒå¼•å·å¼•用字符串å‰é¢åŠ ä¸Šä¸€ä¸ª  $  符å·å°†ä½¿å¾—这个字符串被根æ®å½“å‰è¯­è¨€çŽ¯å¢ƒ
        (locale)  æ¥èŠ¬æ¿  如果当å‰è¯­è¨€çŽ¯å¢ƒæ˜¯  C 或者 POSIX,这个符å·å°†è¢«å¿½ç•¥ã€‚
        å¦‚æžœè¿™ä¸ªå­—ç¬¦ä¸²è¢«èŠ¬æ°©â‘»å©Šæ¶£è€æ•²åˆºå©Šå”¤å³æ’¬ä¹“玫摹
 
       (PARAMETERS)
        ä¸€ä¸ªå‚æ•°    parameter    是一个储存值的实体。它å¯ä»¥æ˜¯ä¸€ä¸ªåç§°     name,
        ä¸€ä¸ªæ•°å­—æˆ–è€…æ˜¯ä¸‹é¢          Special         Parameters                    æ•°
        章节中列出的特殊字符之一。从   shell   的角度æ¥çœ‹ï¼Œä¸€ä¸ªå˜é‡    variable
        是一个由åç§° name ä»£è¡¨çš„å‚æ•°ã€‚一个å˜é‡æœ‰ä¸€ä¸ªå€¼ value 以åŠé›¶ä¸ªæˆ–多个属性
        attibutes。属性å¯ä»¥ä½¿ç”¨å†…建命令    declare    æ¥è®¾ç½®(å‚è§ä¸‹é¢     shell
               (SHELL BUILTIN COMMANDS) 章节中对 declare çš„æè¿°)。
 
        å¦‚æžœç»™ä¸€ä¸ªå‚æ•°èµ‹å€¼ï¼Œé‚£ä¹ˆå®ƒå°±è¢«å®šä¹‰äº†ã€‚空字符串是有效的值。一旦一个å˜é‡è¢«å®šä¹‰äº†ï¼Œå®ƒåªèƒ½ç”¨å†…建命令
        unset æ¥å–消(å‚è§ä¸‹é¢ shell        (SHELL BUILTIN COMMANDS) 章节).
 
        一个å˜é‡ variable å¯ä»¥ç”¨è¿™æ ·çš„语å¥å½¢å¼æ¥èµ‹å€¼ï¼š
 
               name=[value]
 
        如果没有给出值   value_ å˜é‡å°±è¢«èµ‹ä¸ºç©ºå­—符串。所有值   values   都-
        è¿‡äº†æ³¢æµªçº¿æ‰©å±•ï¼Œå‚æ•°å’Œå˜é‡æ‰©å±•,命令替æ¢ï¼Œç®—术扩展和引用的删除(å‚è§ä¸‹é¢çš„
        EXPANSION    展章节)。如果å˜é‡è®¾ç½®äº† integer      属性,那么值  value
        将进行算术扩展,å³ä½¿æ²¡æœ‰åº”用   $((...))   扩展  (å‚è§ä¸‹é¢çš„  Arithmetic
        Expansion            展章节)。 ä¸ä¼šè¿›è¡Œè¯çš„æ‹†åˆ†ï¼Œé™¤éžæ˜¯ä¸‹é¢ Special Parame-
        ters                          æ•°              中æåˆ°çš„               "$@"。
        ä¸ä¼šè¿›è¡Œè·¯å¾„的扩展。赋值语å¥ä¹Ÿå‡ºçŽ°åœ¨ä¸‹åˆ—å†…å»ºå‘½ä»¤ä¸­ï¼Œä½œä¸ºå®ƒä»¬çš„å‚æ•°ï¼š
        declare, typeset, export, readonly, 和 local 。
 
    Positional Parameters            æ•°
        ä½ç½®å‚æ•°    positional    parameter    æ˜¯ä»¥ä¸€æˆ–å¤šä¸ªæ•°å­—ä»£è¡¨çš„å‚æ•°ï¼Œé™¤äº†
        0。ä½ç½®å‚数是在 shell  å¯åŠ¨æ—¶ï¼Œæ ¹æ®å®ƒçš„傿•°æ¥èµ‹å€¼çš„,  也å¯ä»¥ç”¨å†…建命令
        set        æ¥é‡æ–°èµ‹å€¼ã€‚ä½ç½®å‚æ•°ä¸èƒ½ç”¨èµ‹å€¼è¯­å¥æ¥èµ‹å€¼ã€‚在一个       shell
        函数被执行的时候,ä½ç½®å‚æ•°ä¼šè¢«æš‚æ—¶åœ°æ›¿æ¢æŽ‰ (å‚è§ä¸‹é¢çš„  FUNCTIONS     
        章节)。
 
        当ä½ç½®å‚æ•°ç”±ä¸¤ä¸ªä»¥ä¸Šçš„æ•°å­—æž„æˆæ—¶ï¼Œå®ƒå¿…须放在括å·å†…  (å‚è§ä¸‹é¢çš„  EXPAN-
        SION    展章节)。
 
    Special Parameters            æ•°
        shell å¯¹ä¸€äº›å‚æ•°åšç‰¹æ®Šå¤„ç†ã€‚è¿™äº›å‚æ•°åªèƒ½è¢«å¼•用而ä¸èƒ½è¢«èµ‹å€¼ã€‚
        *      扩展为ä½ç½®å‚数,从                                             1
               开始。如果扩展å‘生在åŒå¼•å·ä¸­ï¼Œå®ƒæ‰©å±•为一个è¯ï¼Œå€¼æ˜¯å„ä¸ªå‚æ•°ï¼Œä»¥ç‰¹æ®Šå˜é‡
               IFS 的第一个字符分隔。也就是说,"$*" 等价于 "$1c$2c...",这里  c
               是å˜é‡        IFS        的第一个字符。如果没有设置        IF,
               é‚£ä¹ˆå‚æ•°å°†ç”¨ç©ºæ ¼åˆ†éš”。 IFS
        @      扩展为ä½ç½®å‚数,从                                             1
               开始。如果扩展å‘生在åŒå¼•å·ä¸­ï¼Œæ¯ä¸ªå‚数都将扩展为一个è¯ã€‚也就是说,
               "$@"  等价于  "$1"  "$2"  ...   如果ä½ç½®å‚æ•°ä¸å­˜åœ¨ï¼Œ"$@"  å’Œ  $@
               扩展为空 (å³ï¼Œå®ƒä»¬è¢«åˆ é™¤äº†)。
        #      扩展为ä½ç½®å‚数的个数,以å进制表示。
        ?      扩展为最近执行的å‰å°ç®¡é“的状æ€ã€‚
        -      扩展为当å‰é€‰é¡¹æ ‡å¿—。标志是在å¯åŠ¨æ—¶æˆ–ä»¥å†…å»ºå‘½ä»¤               set
               指定的,或者是 shell 自身设置的 (例如选项 -i )。
        $      扩展为 shell 的进程  ID。在一个  ()  å­  shell  中,它扩展为当å‰
               shell çš„ 进程 ID è€Œä¸æ˜¯å­ shell 的。
        !      扩展为最近一次执行的åŽå° (异步) 命令的进程å·ã€‚
        0      扩展为   shell   或者   shell   脚本的å称。这个å˜é‡æ˜¯åœ¨   shell
               åˆå§‹åŒ–时设置的。如果    bash     是执行脚本文件时å¯åŠ¨çš„ï¼Œ     $0
               将设置为那个文件的å称。如果  bash å¯åŠ¨æ—¶çš„å‚æ•°åŒ…å« -,那么 $0
               被设置为å¯åŠ¨å‘½ä»¤è¡Œè¢«æ‰§è¡ŒåŽçš„ç¬¬ä¸€ä¸ªå‚æ•°ï¼Œå¦‚果有的è¯ã€‚å¦åˆ™ï¼Œå®ƒè¢«è®¾ç½®ä¸ºç”¨æ¥å¯åЍ
               bash 的文件åï¼Œå°±æ˜¯å‚æ•° 0。
        _      shell     å¯åŠ¨æ—¶ï¼Œè®¾ç½®ä¸º     shell     æˆ–å‚æ•°ä¸­è¢«æ‰§è¡Œçš„    shell
               脚本的ç»å¯¹è·¯å¾„å。
               ç„¶åŽï¼Œåœ¨æ‰©å±•时扩展为上一个命令的最åŽä¸€ä¸ªå‚数。它也被设置为被执行的æ¯ä¸ªå‘½ä»¤çš„æ–‡ä»¶å…¨å并且
               è¢«è®¾ç½®åˆ°è¿™ä¸ªå‘½ä»¤æ‰§è¡Œçš„çŽ¯å¢ƒå½“ä¸­ã€‚å½“æ£€æŸ¥é‚®ä»¶æ—¶ï¼Œè¿™ä¸ªå‚æ•°ä¿å­˜ç€æ­£åœ¨æ£€æŸ¥çš„邮件文件的å称。
 
    Shell Variables    é‡
        shell 定义了下列å˜é‡ï¼š
 
        BASH   扩展为用æ¥å¯åŠ¨å½“å‰ bash 实例的文件全å。
        BASH_VERSINFO
               一个åªè¯»æ•°ç»„å˜é‡ï¼Œæˆå‘˜ä¿å­˜ç€å½“å‰                            bash
               实例的版本信æ¯ã€‚赋予数组元素的值是如下这些:
               BASH_VERSINFO[0]        ä¸»ç‰ˆæœ¬å· (release).
               BASH_VERSINFO[1]        æ¬¡ç‰ˆæœ¬å· (version).
               BASH_VERSINFO[2]        è¡¥ä¸ç‰ˆæœ¬
               BASH_VERSINFO[3]        编译信æ¯
               BASH_VERSINFO[4]        å‘å¸ƒæ—¶çš„çŠ¶æ€ (例如, beta1).
               BASH_VERSINFO[5]        MACHTYPE å¹³å°ç±»åž‹
 
        BASH_VERSION
               扩展为一个字符串,æè¿°äº†è¿™ä¸ª bash.  实例的版本。
 
        COMP_CWORD
               ${COMP_WORDS}                 的索引,指å‘当å‰å…‰æ ‡ä½ç½®æ‰€åœ¨çš„è¯ã€‚
               这个å˜é‡åªæœ‰åœ¨è¢«å¯ç¼–程补全功能  (å‚è§ä¸‹é¢çš„ Programmable Comple-
               tion 章节) 调用的 shell 函数中æ‰å¯ç”¨ã€‚
 
        COMP_LINE
               当å‰å‘½ä»¤è¡Œã€‚这个å˜é‡åªæœ‰åœ¨è¢«å‘½ä»¤è¡¥å…¨åŠŸèƒ½è°ƒç”¨çš„             shell
               函数和外部命令中æ‰å¯ç”¨ã€‚
 
        COMP_POINT
               相对于当å‰å‘½ä»¤èµ·å§‹å¤„的当å‰å…‰æ ‡ä½ç½®ã€‚如果当å‰å…‰æ ‡ä½ç½®æ˜¯å½“å‰å‘½ä»¤çš„æœ«ç«¯ï¼Œ
               它的值就和                 ${#COMP_LINE}                  相等。
               这个å˜é‡åªæœ‰åœ¨è¢«å‘½ä»¤è¡¥å…¨åŠŸèƒ½è°ƒç”¨çš„                         shell
               函数和外部命令中æ‰å¯ç”¨ã€‚
 
        COMP_WORDS
               一个数组å˜é‡                                         (å‚è§ä¸‹é¢çš„
               Arrays(数组)一节),由当å‰å‘½ä»¤è¡Œçš„å„个å•è¯æž„æˆã€‚
               这个å˜é‡åªæœ‰åœ¨è¢«å‘½ä»¤è¡¥å…¨åŠŸèƒ½è°ƒç”¨çš„ shell 函数中æ‰å¯ç”¨ã€‚
 
        DIRSTACK
               一个数组å˜é‡ï¼ŒåŒ…å«å½“å‰ç›®å½•栈的内容。栈中的目录排列的顺åºå°±æ˜¯ç”¨å†…建命令
               dirs
               显示时的顺åºã€‚对这个数组å˜é‡çš„æˆå‘˜èµ‹å€¼å¯ä»¥ç”¨æ¥ä¿®æ”¹æ ˆä¸­å·²æœ‰çš„ç›®å½•ï¼Œä½†æ˜¯è¦æ·»åŠ å’Œåˆ é™¤ç›®å½•å°±å¿…é¡»ä½¿ç”¨
               内建命令  pushd  å’Œ  pop。对它赋值ä¸ä¼šæ”¹å˜å½“å‰ç›®å½•ã€‚å¦‚æžœå–æ¶ˆäº†
               DIRSTACK 的定义,它就失去了它的特殊æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        EUID   扩展为当å‰ç”¨æˆ·çš„æœ‰æ•ˆç”¨æˆ· ID。它在 shell å¯åŠ¨æ—¶è®¾ç½®ã€‚å®ƒæ˜¯åªè¯»çš„。
 
        FUNCNAME
               当剿‰§è¡Œçš„     shell     函数å。这个å˜é‡åªæœ‰åœ¨æ‰§è¡Œä¸€ä¸ª    shell
               å‡½æ•°æ—¶å­˜åœ¨ã€‚å‘ FUNCNAME èµ‹å€¼æ²¡æœ‰æ•ˆæžœå¹¶ä¸”è¿”å›žä¸€ä¸ªé”™è¯¯ã€‚å¦‚æžœå–æ¶ˆäº†
               FUNCNAME 的定义,它就失去了特殊的æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        GROUPS 一个数组å˜é‡ï¼ŒåŒ…å«å½“å‰ç”¨æˆ·æ‰€å±žçš„ç»„çš„åˆ—è¡¨ã€‚å‘              GROUPS
               èµ‹å€¼æ²¡æœ‰æ•ˆæžœå¹¶ä¸”è¿”å›žä¸€ä¸ªé”™è¯¯ã€‚å¦‚æžœå–æ¶ˆäº†                  GROUPS
               的定义,它就失去了特殊的æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        HISTCMD
               当å‰å‘½ä»¤çš„历å²ç¼–å·ï¼Œæˆ–者历å²åˆ—è¡¨ä¸­çš„ç´¢å¼•ã€‚å¦‚æžœå–æ¶ˆäº†     HISTCMD
               的定义,它就失去了特殊的æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        HOSTNAME
               自动设置为当å‰çš„主机å。
 
        HOSTTYPE
               è‡ªåŠ¨è®¾ç½®ä¸ºä¸€ä¸ªå­—ç¬¦ä¸²ï¼Œå”¯ä¸€åœ°æ ‡è¯†ç€æ­£åœ¨è¿è¡Œ                  bash
               的机器类型。默认值是系统相关的。
 
        LINENO æ¯æ¬¡å¼•ç”¨è¿™ä¸ªå‚æ•°æ—¶ï¼Œshell
               将它替æ¢ä¸ºä¸€ä¸ªæŒ‡ç¤ºåœ¨è„šæœ¬æˆ–å‡½æ•°ä¸­å½“å‰è¡Œå·çš„å进制数字(从        1
               开始)。
               å¦‚æžœä¸æ˜¯åœ¨è„šæœ¬æˆ–å‡½æ•°ä¸­ï¼Œæ›¿æ¢å¾—到的值ä¸ä¸€å®šæœ‰æ„ä¹‰ã€‚å¦‚æžœå–æ¶ˆäº†
               LINENO 的定义,它就失去了特殊的æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        MACHTYPE
               自动设置为一个字符串,完整的æè¿°äº†æ­£åœ¨è¿è¡Œ                  bash
               çš„ç³»ç»Ÿç±»åž‹ï¼Œæ ¼å¼æ˜¯æ ‡å‡†çš„         GNU          cpu-company-system
               æ ¼å¼ã€‚默认值是系统相关的。
 
        OLDPWD 上一次命令 cd 设置的工作目录。
 
        OPTARG 内建命令   getopts  处ç†çš„æœ€åŽä¸€ä¸ªé€‰é¡¹å‚数值  (å‚è§ä¸‹é¢çš„  shell
                      (SHELL BUILTIN COMMANDS) 章节)。
 
        OPTIND 内建命令  getopts  将处ç†çš„ä¸‹ä¸€ä¸ªå‚æ•°çš„索引  (å‚è§ä¸‹é¢çš„   shell
                      (SHELL BUILTIN COMMANDS) 章节)。
 
        OSTYPE 自动设置的一个字符串,æè¿°äº†æ­£åœ¨è¿è¡Œ                        bash
               çš„æ“作系统。默认值是系统相关的。
 
        PIPESTATUS
               一个数组å˜é‡          (å‚è§ä¸‹é¢çš„          Arrays              
               章节)ï¼ŒåŒ…å«æœ€è¿‘执行的å‰å°ç®¡é“中的进程(å¯èƒ½åªåŒ…å«ä¸€ä¸ªå‘½ä»¤)的退出状æ€ã€‚
 
        PPID   shell 的父进程的进程å·ã€‚这个å˜é‡æ˜¯åªè¯»çš„。
 
        PWD    ç”± cd 命令设置的当å‰å·¥ä½œç›®å½•。
 
        RANDOM æ¯æ¬¡å¼•ç”¨è¿™ä¸ªå‚æ•°æ—¶ï¼Œéƒ½ä¼šäº§ç”Ÿä¸€ä¸ª        0        到        32767
               ä¹‹é—´çš„éšæœºæ•´æ•°ã€‚å¯ä»¥é€šè¿‡å‘                                RANDOM
               赋值æ¥åˆå§‹åŒ–éšæœºæ•°åºåˆ—ã€‚å¦‚æžœå–æ¶ˆäº†                        RANDOM
               的定义,它就失去了特殊的æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        REPLY  å˜é‡çš„值将作为内建命令 read çš„è¾“å…¥ï¼Œå¦‚æžœå‘½ä»¤æ²¡æœ‰å‚æ•°çš„è¯ã€‚
 
        SECONDS
               æ¯æ¬¡å¼•ç”¨è¿™ä¸ªå‚æ•°æ—¶ï¼Œè¿”回  shell 自è¿è¡Œä»¥æ¥çš„ç§’æ•°ã€‚å¦‚æžœå‘ SECONDS
               赋值,此åŽå¯¹å®ƒçš„å¼•ç”¨å°†è¿”å›žè‡ªèµ‹å€¼æ—¶èµ·çš„ç§’æ•°åŠ ä¸Šæ‰€èµ‹äºˆçš„å€¼ã€‚å¦‚æžœå–æ¶ˆ
               SECONDS 的定义,它就失去了特殊的æ„义,å³ä½¿åŽæ¥é‡æ–°å®šä¹‰å®ƒã€‚
 
        SHELLOPTS
               一个冒å·åˆ†éš”的被å…许的  shell 选项列表。列表中æ¯ä¸ªè¯éƒ½æ˜¯å†…置命令
               set çš„ -o é€‰é¡¹çš„æœ‰æ•ˆå‚æ•°ã€‚  SHELLOPTS  中出现的选项也是  set  -o
               显示为              on             的选项。如果             bash
               å¯åŠ¨æ—¶ä»ŽçŽ¯å¢ƒä¸­æ‰¾åˆ°è¿™ä¸ªå˜é‡ï¼Œé‚£ä¹ˆåœ¨è¯»å–任何é…置文件之å‰ï¼Œåˆ—表中的æ¯ä¸ªé€‰é¡¹éƒ½å°†è¢«è®¾ç½®ã€‚这个å˜é‡æ˜¯åªè¯»çš„。
 
        SHLVL  æ¯æ¬¡å¯åŠ¨ä¸€ä¸ª bash 的实例时都会增加。
 
        UID    扩展为当å‰ç”¨æˆ·çš„ ID,在å¯åŠ¨æ—¶åˆå§‹åŒ–。这个å˜é‡æ˜¯åªè¯»çš„。
 
        下列å˜é‡è¢«              shell              使用。有时              bash
        会为å˜é‡èµ‹é»˜è®¤å€¼ï¼›è¿™äº›æƒ…况在下é¢ä¼šæ ‡å‡ºã€‚
 
        BASH_ENV
               如果             bash              在执行一个              shell
               脚本时设定了这个å˜é‡ï¼Œå®ƒçš„值将被解释为一个文件å,  包å«ç€åˆå§‹åŒ–
               shell    ç”¨åˆ°çš„å‘½ä»¤ï¼Œå°±åƒ    ~/.bashrc     中一样。     BASH_ENV
               的值在被解释为一个文件å之å‰è¦-
               è¿‡å‚æ•°æ‰©å±•,命令替æ¢å’Œç®—术扩展。ä¸ä¼šä½¿ç”¨ PATH æ¥æŸ¥æ‰¾ç»“果文件å。
        CDPATH 命令  cd  çš„æœç´¢è·¯å¾„。这是一个冒å·åˆ†éš”的目录列表,shell 从中查找
               cd 命令的目标目录。å¯ä»¥æ˜¯è¿™æ ·ï¼š ".:~:/usr".
        COLUMNS
               用在内建命令   select   当中,用æ¥åˆ¤æ–­è¾“出选择列表时的终端宽度。
               è‡ªåŠ¨æ ¹æ® SIGWINCH ä¿¡å·æ¥è®¾ç½®ã€‚
        COMPREPLY
               一个数组å˜é‡ï¼Œbash                      从中读å–å¯èƒ½çš„命令补全。
               它是由命令补全功能调用的 shell 函数产生的。
        FCEDIT 内建命令 fc 默认的编计鳌
        FIGNORE
               一个冒å·åˆ†éš”çš„åŽç¼€å列表,在进行文件å补全时被忽略   (å‚è§ä¸‹é¢çš„
               READLINE
               章节)。一个åŽç¼€æ»¡è¶³å…¶ä¸­ä¹‹ä¸€çš„æ–‡ä»¶å被排除在匹é…的文件å之外。å¯ä»¥æ˜¯è¿™æ ·ï¼š
               ".o:~".
        GLOBIGNORE
               一个冒å·åˆ†éš”的模å¼åˆ—è¡¨ï¼Œå®šä¹‰äº†è·¯å¾„åæ‰©å±•æ—¶è¦å¿½ç•¥çš„æ–‡ä»¶å集åˆã€‚
               如果一个文件å与路径扩展模å¼åŒ¹é…ï¼ŒåŒæ—¶åŒ¹é…            GLOBIGNORE
               ä¸­çš„ä¸€ä¸ªæ¨¡å¼æ—¶ï¼Œå®ƒè¢«ä»ŽåŒ¹é…列表中删除。
        HISTCONTROL
               如果设置为            ignorespace,            以           space
               开头的行将ä¸ä¼šæ’入到历å²åˆ—表中。如果设置为           ignoredups,
               匹é…上一次历å²è®°å½•的行将ä¸ä¼šæ’入。设置为              ignoreboth
               会结åˆè¿™ä¸¤ç§é€‰é¡¹ã€‚如果没有定义,或者设置为其他值,所有解释器读å–的行都将存入历å²åˆ—表,
               但还è¦ç«Ÿ   HISTIGNORE   处ç†ã€‚这个å˜é‡çš„作用å¯ä»¥è¢«   HISTIGNORE
               替代。多行的组åˆå‘½ä»¤çš„第二和其余行都ä¸ä¼šè¢«æ£€æµ‹ï¼Œä¸ç®¡ HISTCONTROL
               是什么,都会加入到历å²ä¸­ã€‚
        HISTFILE
               ä¿å­˜å‘½ä»¤åކå²çš„æ–‡ä»¶å  (å‚è§ä¸‹é¢çš„  HISTORY     章节)。默认值是
               ~/.bash_historyã€‚å¦‚æžœå–æ¶ˆå®šä¹‰ï¼Œåœ¨äº¤äº’å¼       shell       退出时
               命令历å²å°†ä¸ä¼šä¿å­˜ã€‚
        HISTFILESIZE
               åŽ†å²æ–‡ä»¶ä¸­åŒ…å«çš„æœ€å¤§è¡Œæ•°ã€‚当为这个å˜é‡èµ‹å€¼æ—¶ï¼Œå¦‚果需è¦çš„è¯ï¼Œåކ岿–‡ä»¶å°†è¢«æˆªæ–­
               æ¥å®¹çº³ä¸è¶…过这个值的行。默认值是   500ã€‚åŽ†å²æ–‡ä»¶åœ¨äº¤äº’å¼   shell
               退出时 也会被截断到这个值。
        HISTIGNORE
               一个冒å·åˆ†éš”的模å¼åˆ—表,用æ¥åˆ¤æ–­é‚£ä¸ªå‘½ä»¤è¡Œåº”当ä¿å­˜åœ¨åކå²åˆ—表中。æ¯ä¸ªæ¨¡å¼
               都定ä½äºŽè¡Œé¦–ï¼Œå¿…é¡»åŒ¹é…æ•´è¡Œ  (没有å‡å®šæ·»åŠ   `*')。在  HISTCONTROL
               指定的测试结æŸåŽï¼Œè¿™é‡Œçš„æ¯ä¸ªæ¨¡å¼éƒ½è¦è¢«æµ‹è¯•。除了平常的     shell
               模å¼åŒ¹é…字符,             `&'             匹é…上一个历å²è¡Œã€‚`&'
               å¯ä»¥ä½¿ç”¨åæ–œæ æ¥è½¬ä¹‰ï¼›åæ–œæ åœ¨
               å°è¯•匹é…之å‰å°†è¢«åˆ é™¤ã€‚多行的组åˆå‘½ä»¤çš„第二行以åŠåŽç»­è¡Œéƒ½ä¸ä¼šè¢«æµ‹è¯•,ä¸ç®¡
               HISTIGNORE 是什么,都将加入到历å²ä¸­ã€‚
        HISTSIZE
               命令历å²ä¸­ä¿å­˜çš„åŽ†å²æ•°é‡      (å‚è§ä¸‹é¢çš„      HISTORY         
               章节)。默认值是 500。
        HOME   当å‰ç”¨æˆ·çš„个人目录;内建命令                                  cd
               çš„é»˜è®¤å‚æ•°ã€‚在执行波浪线扩展时也用到这个å˜é‡ã€‚
        HOSTFILE
               包å«ä¸€ä¸ªæ ¼å¼å’Œ       /etc/hosts      相åŒçš„æ–‡ä»¶å,当      shell
               需è¦è¡¥å…¨ä¸»æœºåæ—¶è¦è¯»å–它。shell                       è¿è¡Œè¿‡ç¨‹ä¸­
               å¯ä»¥æ”¹å˜å¯èƒ½çš„主机å补全列表;改å˜ä¹‹åŽä¸‹ä¸€æ¬¡éœ€è¦ä¸»æœºå补全时
               bash     会将新文件的内容添加到旧列表中。如果定义了     HOSTFILE
               但是没有赋值,bash             å°†å°è¯•è¯»å–             /etc/hosts
               文件æ¥èŽ·å¾—å¯èƒ½çš„主机åè¡¥å…¨åˆ—è¡¨ã€‚å½“å–æ¶ˆ                  HOSTFILE
               的定义时,主机å列表将清空。
        IFS    内部字段分隔符          Internal         Field         Separator
               用æ¥åœ¨æ‰©å±•之åŽè¿›è¡Œåˆ†è¯ï¼Œä½¿ç”¨å†…部命令 read 将行划分æˆè¯ã€‚默认值是
               ``<space><tab><newline>''。
        IGNOREEOF
               æŽ§åˆ¶äº¤äº’å¼           shell           接å—到唯一一个          EOF
               字符时的行为。如果有定义,值是需è¦åœ¨ä¸€è¡Œçš„开始连续输入       EOF
               字符,直到å¯ä»¥ä½¿                                            bash
               退出的字符个数。如果这个å˜é‡å­˜åœ¨ï¼Œä½†æ˜¯å€¼ä¸æ˜¯ä¸€ä¸ªæ•°å­—或者没有赋值,默认值是
               10。 如果å˜é‡æ²¡æœ‰å®šä¹‰ï¼Œ EOF 标志ç€è¾“入的结æŸã€‚
        INPUTRC
               readline   çš„å¯åЍé…ç½®æ–‡ä»¶ï¼Œè€Œä¸æ˜¯é»˜è®¤çš„  ~/.inputrc  (å‚è§ä¸‹é¢çš„
               READLINE 章节)。
        LANG   用æ¥å†³å®šæ²¡æœ‰ç‰¹åœ°ç”¨ LC_ å˜é‡æŒ‡å®šçš„语言环境项。
        LC_ALL 这个å˜é‡è¶…越了 LANG 和所有其他指定语言环境项的 LC_ å˜é‡ã€‚
        LC_COLLATE
               这个å˜é‡å†³å®šäº†ä¸ºè·¯å¾„æ‰©å±•çš„ç»“æžœæŽ’åºæ—¶çš„å­—æ¯é¡ºåºï¼Œå†³å®šäº†èŒƒå›´è¡¨è¾¾å¼çš„行为,
               等价类,和路径扩展中的归并顺åºä»¥åŠæ¨¡å¼åŒ¹é…。
        LC_CTYPE
               这个å˜é‡å†³å®šäº†å­—ç¬¦çš„è§£é‡Šå’Œè·¯å¾„æ‰©å±•ä»¥åŠæ¨¡å¼åŒ¹é…中字符类的行为。
        LC_MESSAGES
               这个å˜é‡å†³å®šäº†èŠ¬èƒ $ å‰å¯¼çš„åŒå¼•å·å­—符串时的语言环境。
        LC_NUMERIC
               这个å˜é‡å†³å®šäº†æ ¼å¼åŒ–数字时的语言环境分类。
        LINES  内建命令  select  用它æ¥åˆ¤æ–­è¾“出选择列表时的列宽度。在收到  SIG-
               WINCH ä¿¡å·æ—¶è‡ªåŠ¨è®¾ç½®ã€‚
        MAIL   å¦‚æžœè¿™ä¸ªå‚æ•°è®¾ç½®ä¸ºä¸€ä¸ªæ–‡ä»¶å,并且没有设置环境å˜é‡      MAILPATH
               çš„è¯ï¼Œ bash 将在这个文件中通知用户有邮件到达。
        MAILCHECK
               指定    bash    检查邮件的频率是多少,以秒为å•ä½ã€‚默认值是    60
               ç§’ã€‚éœ€è¦æ£€æŸ¥é‚®ä»¶çš„æ—¶å€™ï¼Œshell       在显示æç¤ºç¬¦ä¹‹å‰å°†è¿›è¡Œæ£€æŸ¥ã€‚
               å¦‚æžœå–æ¶ˆå®ƒçš„定义,或者设置为并éžå¤§äºŽç­‰äºŽé›¶çš„æ•°å€¼ï¼Œshell
               å°†ç¦æ­¢é‚®ä»¶æ£€æŸ¥ã€‚
        MAILPATH
               一个冒å·åˆ†éš”的文件å列表,从中检查邮件。当邮件到达æŸä¸ªç‰¹æ®Šæ–‡ä»¶ä¸­æ—¶ï¼Œè¾“出的特定消æ¯å¯ä»¥
               通过将文件å与消æ¯ä»¥    `?'    åˆ†éš”æ¥æŒ‡å®šã€‚   在消æ¯çš„æ–‡æœ¬ä¸­ï¼Œ$_
               扩展为当å‰é‚®ä»¶æ–‡ä»¶çš„æ–‡ä»¶å。例如:
               MAILPATH='/var/mail/bfox?"You  have  mail":~/shell-mail?"$_  has
               mail!"'
               Bash
               为这个å˜é‡æä¾›é»˜è®¤å€¼ï¼Œä½†æ˜¯å®ƒä½¿ç”¨çš„用户邮件文件的ä½ç½®æ˜¯ç³»ç»Ÿç›¸å…³çš„
               (例如,/var/mail/$USER)。
        OPTERR 如果设置为   1,   bash   显示内建命令   getopts  产生的错误消æ¯
               (å‚è§ä¸‹é¢çš„ shell        (SHELL BUILTIN  COMMANDS)  章节)ã€‚æ¯æ¬¡
               shell å¯åŠ¨æ—¶æˆ–è€…ä¸€ä¸ª shell 脚本被执行时 OPTERR 被åˆå§‹åŒ–为 1。
        PATH   æœç´¢å‘½ä»¤çš„路径。它是一个冒å·åˆ†å‰²çš„目录列表,shell   从中æœç´¢å‘½ä»¤
               (å‚è§ä¸‹é¢çš„                       (COMMAND              EXECUTION)
               段è½)。默认的路径是系统相关的,是由安装                     bash
               的系统管ç†å‘˜è®¾ç½®çš„。通常它的值是
               ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.''。
        POSIXLY_CORRECT
               如果  bash  å¯åŠ¨çŽ¯å¢ƒä¸­æœ‰è¿™ä¸ªå˜é‡ï¼Œå®ƒå°†åœ¨è¯»å–å¯åЍé…置文件之å‰è¿›å…¥
               posix  modeï¼Œå°±å¥½åƒæä¾›äº†   --posix   å¯åЍ傿•°ä¸€æ ·ã€‚如果   shell
               è¿è¡Œè¿‡ç¨‹ä¸­è®¾ç½®äº†å®ƒï¼Œbash  å°±å¯ç”¨ posix modeï¼Œå°±å¥½åƒæ‰§è¡Œäº† set -o
               posix 命令一样。
        PROMPT_COMMAND
               å¦‚æžœæœ‰å®šä¹‰ï¼Œå®ƒçš„å€¼å°†ä½œä¸ºä¸€ä¸ªå‘½ä»¤ï¼Œæ¯æ¬¡æ˜¾ç¤ºä¸»æç¤ºç¬¦ä¹‹å‰éƒ½ä¼šæ‰§è¡Œã€‚
        PS1    è¿™ä¸ªå‚æ•°çš„值被扩展       (å‚è§ä¸‹é¢çš„       PROMPTING             符
               段è½),用作主æç¤ºç¬¦å­—符串。默认值是 ``\s-\v\$ ''。
        PS2    è¿™ä¸ªå‚æ•°çš„å€¼åŒ PS1 一起被扩展,用作次æç¤ºç¬¦å­—符串。默认值是  ``>
               ''。
        PS3    è¿™ä¸ªå‚æ•°çš„值被用作内建命令  select  çš„æç¤ºç¬¦  (å‚è§ä¸Šé¢çš„  SHELL
               GRAMMAR    法章节)。
        PS4    è¿™ä¸ªå‚æ•°çš„å€¼åŒ     PS1      一起被扩展,在执行跟踪中在      bash
               显示æ¯ä¸ªå‘½ä»¤ä¹‹å‰æ˜¾ç¤ºã€‚需è¦çš„è¯ï¼Œ                             PS4
               的第一个字符会被å¤åˆ¶å¤šæ¬¡ï¼Œæ¥æŒ‡ç¤º  indirection   的层数。默认值是
               ``+ ''。
        TIMEFORMAT
               在å‰ç¼€     time     ä¿ç•™å­—的管é“ä¸­ï¼Œè¿™ä¸ªå‚æ•°çš„值用作格å¼å­—符串,
               指定计时信æ¯å¦‚何显示。字符   %    引入的转义åºåˆ—,被扩展为时间值
               或其他信æ¯ã€‚转义åºåˆ—和它们的å«ä¹‰å¦‚下所示;括å·ä¸­æ˜¯å¯é€‰çš„æˆåˆ†ã€‚
               %%        一个字é¢ä¸Šçš„ %。
               %[p][l]R  纠氖奔洌悦爰扑æª
               %[p][l]U  CPU 在用户模å¼ä¸‹æ‰§è¡Œçš„秒数。
               %[p][l]S  CPU 在系统模å¼ä¸‹æ‰§è¡Œçš„秒数。
               %P        CPU 使用率,算法是 (%U + %S) / %R。
 
               å¯é€‰çš„   p   是指定精度  (å°æ•°ç‚¹åŽæ•°å­—使•°)  的数值。  如果是  0
               å°±ä¸è¾“å‡ºå°æ•°ç‚¹æˆ–å°æ•°å€¼ã€‚æœ€å¤šæŒ‡å®šåˆ°å°æ•°ç‚¹åŽä¸‰ä½ï¼› 如果 p  大于  3
               就会被改为 3。如果没有指定 p,默认使用 3。
 
               å¯é€‰çš„    l    指定了长格å¼ï¼ŒåŒ…å«åˆ†é’Ÿï¼Œæ ¼å¼æ˜¯    MMmSS.FFs。   p
               çš„å€¼å†³å®šäº†æ˜¯ä¸æ˜¯åŒ…å«å°æ•°ä½ã€‚
 
               如果没有设置这个值,bash                            å‡å®šå®ƒçš„值是
               $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'。
               如果它是空值,就ä¸ä¼šæ˜¾ç¤ºè®¡æ—¶ä¿¡æ¯ã€‚显示格å¼å­—符串的时候,会加上
               一个å‰å¯¼çš„æ–°è¡Œç¬¦ã€‚
 
        TMOUT  如果设置为大于  0  的值,TMOUT  被当作内建命令  read  的默认超时
               等待时间。如果等待终端输入时, TMOUT 秒之åŽä»ç„¶æ²¡æœ‰è¾“入, select
               命令将终止。在交互的        shell       中,它的值被解释为显示了
               主æç¤ºç¬¦ä¹‹åŽç­‰å¾…输入的秒数。如果竟飧雒胧笕匀幻挥惺淙耄
               Bash 将退出。
 
        auto_resume
               这个å˜é‡æŽ§åˆ¶äº†                                             shell
               如何与用户和作业控制交互。如果设置了这个å˜é‡ï¼Œ
               一个ä¸åŒ…å«é‡å®šå‘çš„å•个è¯çš„简å•命令,将作为æ¢å¤è¢«ä¸­æ–­çš„作业的指示。
               ä¸å…许出现模棱两å¯çš„æƒ…况;如果有多个作业都以这个è¯èµ·å§‹ï¼Œå°†æ¢å¤æœ€è¿‘è¿è¡Œ
               çš„ä½œä¸šã€‚åœ¨è¿™ç§æƒ…形下,被中断的作业的                        name
               是用于å¯åŠ¨å®ƒçš„å‘½ä»¤è¡Œã€‚å¦‚æžœå€¼è®¾ç½®ä¸º                       exact_
               给出的字符串必须精确匹é…被中断的作业å;如果设置为   substring,
               给出的字符串需è¦åŒ¹é…被中断的作业åçš„å­ä¸²ã€‚值           substring
               的功能与作业标识符 %?  功能类似 (å‚è§ä¸‹é¢çš„ JOB CONTROL            制
               章节)。如果设置为任何其他值,给出的字符串必须是被中断的作业的å‰ç¼€ï¼›
               这样åšä¸Žä½œä¸šæ ‡è¯†ç¬¦ % 功能类似。
 
        histchars
               两到三个字符,控制ç€åކ岿‰©å±•和分段     (tokenization,å‚è§ä¸‹é¢çš„
               HISTORY EXPANSION             章节)。第一个字符是  history  expan-
               sion(åŽ†å²æ‰©å±•) 字符, è¿™ä¸ªå­—ç¬¦è¡¨æ˜Žäº†åŽ†å²æ‰©å±•的开始,通常是 `!'。
               第二个字符是      quick      substitution(快速替æ¢)       字符,
               å®ƒæ˜¯é‡æ–°è¿è¡Œä¸Šæ¬¡è¾“入的命令,但将命令中的字符串替æ¢ä¸ºå¦ä¸€ä¸ªçš„简写,
               默认是     `^'。å¯é€‰çš„第三个字符是指示如果作为一个è¯çš„开始,那么
               一行中剩余字符是注释。通常这个字符是       `#'ã€‚åŽ†å²æ³¨é‡Šå­—符使得
               å¯¹ä¸€è¡Œä¸­å‰©ä½™å­—ç¬¦åœ¨åŽ†å²æ›¿æ¢ä¸­è¢«è·³è¿‡ã€‚它ä¸ä¸€å®šä½¿  shell   解释器将
               这一行的剩余部分当作注释。
 
    Arrays
        Bash  æä¾›äº†ä¸€ç»´æ•°ç»„å˜é‡ã€‚任何å˜é‡éƒ½å¯ä»¥ä½œä¸ºä¸€ä¸ªæ•°ç»„;内建命令  declare
        å¯ä»¥æ˜¾å¼åœ°å®šä¹‰æ•°ç»„ã€‚æ•°ç»„çš„å¤§å°æ²¡æœ‰ä¸Šé™ï¼Œä¹Ÿæ²¡æœ‰é™åˆ¶åœ¨è¿žç»­å¯¹æˆå‘˜å¼•用和
        èµ‹å€¼æ—¶æœ‰ä»€ä¹ˆè¦æ±‚。数组以整数为下标,从 0 开始。
 
        如果å˜é‡èµ‹å€¼æ—¶ä½¿ç”¨è¯­æ³•  name[subscript]=value,  那么就会自动创建数组。
        subscript          被当作一个算术表达å¼ï¼Œç»“果必须是大于等于           0
        çš„å€¼ã€‚è¦æ˜¾å¼åœ°å®šä¹‰ä¸€ä¸ªæ•°ç»„,使用  declare  -a  name  (å‚è§ä¸‹é¢çš„  shell
               (SHELL BUILTIN COMMANDS) 章节)。也å¯ä»¥ç”¨ declare  -a  name[sub-
        script] 这时  subscript 被忽略。数组å˜é‡çš„属性å¯ä»¥ç”¨å†…建命令 declare å’Œ
        readonly æ¥æŒ‡å®šã€‚æ¯ä¸ªå±žæ€§å¯¹äºŽæ‰€æœ‰æ•°ç»„元素都有效。
 
        数组赋值å¯ä»¥ä½¿ç”¨å¤åˆèµ‹å€¼çš„æ–¹å¼ï¼Œå½¢å¼æ˜¯    name=(value1     ...     val-
        uen),这里æ¯ä¸ª      value     的形å¼éƒ½æ˜¯     [subscript]=string。string
        必须出现。如果出现了å¯é€‰çš„æ‹¬å·å’Œä¸‹æ ‡ï¼Œå°†ä¸ºè¿™ä¸ªä¸‹æ ‡èµ‹å€¼ï¼Œå¦åˆ™
        被赋值的元素的下标是语å¥ä¸­ä¸Šä¸€æ¬¡èµ‹å€¼çš„下标加一。下标从     0     开始。
        这个语法也被内建命令 declare 所接å—。å•独的数组元素å¯ä»¥ç”¨ä¸Šé¢ä»‹ç»çš„语法
        name[subscript]=value æ¥èµ‹å€¼ã€‚
 
        数组的任何元素都å¯ä»¥ç”¨            ${name[subscript]}           æ¥å¼•用。
        èŠ±æ‹¬å·æ˜¯å¿…须的,以é¿å…和路径扩展冲çªã€‚如果   subscript   是   @    或是
        *,它扩展为                      name                      的所有æˆå‘˜ã€‚
        这两ç§ä¸‹æ ‡åªæœ‰åœ¨åŒå¼•å·ä¸­æ‰ä¸åŒã€‚在åŒå¼•å·ä¸­ï¼Œ${name[*]}   扩展为一个è¯ï¼Œ
        由所有数组æˆå‘˜çš„值组æˆï¼Œç”¨ç‰¹æ®Šå˜é‡  IFS 的第一个字符分隔;${name[@]} å°†
        name       çš„æ¯ä¸ªæˆå‘˜æ‰©å±•为一个è¯ã€‚        如果数组没有æˆå‘˜ï¼Œ${name[@]}
        扩展为空串。这ç§ä¸åŒç±»ä¼¼äºŽç‰¹æ®Šå‚æ•°  *  å’Œ  @ 的扩展 (å‚è§ä¸Šé¢çš„ Special
        Parameters   段è½)。${#name[subscript]}    扩展为    ${name[subscript]}
        的长度。如果           subscript          是          *          或者是
        @,扩展结果是数组中元素的个数。引用没有下标数组å˜é‡ç­‰ä»·äºŽ 引用元素 0。
 
        内建命令 unset ç”¨äºŽé”€æ¯æ•°ç»„。unset  name[subscript]  将销æ¯ä¸‹æ ‡æ˜¯  sub-
        script  的元素。 unset name, 这里 name 是一个数组,或者 unset name[sub-
        script], 这里 subscript 是 * 或者是 @ï¼Œå°†é”€æ¯æ•´ä¸ªæ•°ç»„。
 
        内建命令    declare,     local,     å’Œ     readonly     éƒ½èƒ½æŽ¥å—     -a
        选项,从而指定一个数组。内建命令         read        å¯ä»¥æŽ¥å—        -a
        é€‰é¡¹ï¼Œä»Žæ ‡å‡†è¾“å…¥è¯»å…¥ä¸€åˆ—è¯æ¥ä¸ºæ•°ç»„赋值。内建命令   set    å’Œ    declare
        使用一ç§å¯ä»¥é‡ç”¨ä¸ºè¾“å…¥çš„æ ¼å¼æ¥æ˜¾ç¤ºæ•°ç»„元素。
 
       (EXPANSION)
        命令行的扩展是在拆分æˆè¯ä¹‹åŽè¿›è¡Œçš„。有七ç§ç±»åž‹çš„æ‰©å±•:   brace   expan-
        sion(èŠ±æ‹¬å·æ‰©å±•), tilde expansion(波浪线扩展), parameter  and  variable
        expansion(傿•°å’Œå˜é‡æ‰©å±•),  command  substitution(命令替æ¢), arithmetic
        expansion(算术扩展),  word  splitting(è¯çš„æ‹†åˆ†),  å’Œ  pathname   expan-
        sion(路径扩展).
 
        æ‰©å±•çš„é¡ºåºæ˜¯ï¼šbrace  expansion, tilde expansion, parameter, variable å’Œ
        arithmetic expansion 还有  command  substitution  (按照从左到å³çš„顺åº),
        word splitting, æœ€åŽæ˜¯ pathname expansion.
 
        还有一ç§é™„加的扩展:process    subtitution    (进程替æ¢)   åªæœ‰åœ¨æ”¯æŒå®ƒ
        的系统中有效。
 
        åªæœ‰  brace  expansion,   word   splitting,   å’Œ   pathname   expansion
        在扩展å‰åŽçš„è¯æ•°ä¼šå‘生改å˜ï¼›å…¶ä»–æ‰©å±•æ€»æ˜¯å°†ä¸€ä¸ªè¯æ‰©å±•为一个è¯ã€‚
        å”¯ä¸€çš„ä¾‹å¤–æ˜¯ä¸Šé¢æåˆ°çš„ "$@" å’Œ "${name[@]}" (å‚è§ PARAMETERS傿•°)。
 
    Brace Expansion
        Brace expansion 是一ç§å¯èƒ½äº§ç”Ÿä»»æ„å­—ç¬¦ä¸²çš„æœºåˆ¶ã€‚è¿™ç§æœºåˆ¶ç±»ä¼¼äºŽ pathname
        expansion,   但是并ä¸éœ€è¦å­˜åœ¨ç›¸åº”的文件。  èŠ±æ‹¬å·æ‰©å±•çš„æ¨¡å¼æ˜¯ä¸€ä¸ªå¯é€‰çš„
        preamble(å‰å¯¼å­—符),
        åŽé¢è·Ÿç€ä¸€ç³»åˆ—逗å·åˆ†éš”的字符串,包å«åœ¨ä¸€å¯¹èŠ±æ‹¬å·ä¸­ï¼Œ å†åŽé¢æ˜¯ä¸€ä¸ªå¯é€‰çš„
        postscript(附言)。
        å‰å¯¼è¢«æ·»åŠ åˆ°èŠ±æ‹¬å·ä¸­çš„æ¯ä¸ªå­—ç¬¦ä¸²å‰é¢ï¼Œé™„言被附加到æ¯ä¸ªç»“果字符串之åŽï¼Œ
        从左到å³è¿›è¡Œæ‰©å±•。
 
        èŠ±æ‹¬å·æ‰©å±•å¯ä»¥åµŒå¥—。扩展字符串的结果没有排åºï¼›è€Œæ˜¯ä¿ç•™äº†ä»Žå·¦åˆ°å³çš„顺åºã€‚
        例如, a{d,c,b}e 扩展为 `ade ace abe'。
 
        èŠ±æ‹¬å·æ‰©å±•是在任何其他扩展之å‰è¿›è¡Œçš„,任何对其他扩展有特殊æ„义的字符
        都ä¿ç•™åœ¨ç»“果中。它是严格字é¢ä¸Šçš„。                                 Bash
        ä¸ä¼šå¯¹æ‰©å±•的上下文或花括å·ä¸­çš„æ–‡æœ¬åšä»»ä½•语义上的解释。
 
        æ­£ç¡®çš„èŠ±æ‹¬å·æ‰©å±•å¿…é¡»åŒ…å«æ²¡æœ‰å¼•用的左括å·å’Œå³æ‹¬å·ï¼Œä»¥åŠè‡³å°‘一个没有
        引用的逗å·ã€‚任何䏿­£ç¡®çš„表达å¼éƒ½ä¸ä¼šè¢«æ”¹å˜ã€‚å¯ä»¥ç”¨åæ–œæ æ¥å¼•用 {  或  ,
        æ¥é˜»æ­¢å°†å®ƒä»¬è¯†åˆ«ä¸ºèŠ±æ‹¬å·è¡¨è¾¾å¼çš„一部分。 为了é¿å…ä¸Žå‚æ•°æ‰©å±•冲çªï¼Œå­—符串
        ${ ä¸è¢«è®¤ä¸ºæœ‰æ•ˆçš„组åˆã€‚
 
        è¿™ç§ç»“构通常用æ¥ç®€å†™å­—符串的公共å‰ç¼€è¿œæ¯”上例中为长的情况,例如:
 
               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 选项æ¥ç¦ç”¨èŠ±æ‹¬å·æ‰©å±•  (å‚è§ä¸‹é¢çš„  shell
               (SHELL BUILTIN COMMANDS) 章节)。
 
    Tilde Expansion
        如果一个è¯ä»¥æ²¡æœ‰å¼•用的波浪线字符            (`~')            开始,所有
        在第一个没有引用的斜线   (`/')   之å‰çš„字符   (或者是这个è¯çš„æ‰€æœ‰å­—符,
        如果没有没引用的斜线的è¯)  都被认为是  tilde-prefix(波浪线å‰ç¼€)。  如果
        tilde-prefix 中没有被引用的字符,那么波浪线之åŽçš„字符串 被认为是  login
        name(登录å)ã€‚å¦‚æžœç™»å½•åæ˜¯ç©ºå­—符串,波浪线将  被替æ¢ä¸º  shell 傿•° HOME
        的值。如果没有定义         HOM,        将替æ¢ä¸ºæ‰§è¡Œæ­¤          shell
        的用户的个人目录。å¦åˆ™ï¼Œtilde-prefix                           被替æ¢ä¸º
        与指定登录å相è”系的个人目录。
 
        如果 tilde-prefix  是  `~+',将使用  shell  å˜é‡  PWD  çš„å€¼æ¥æ›¿æ¢ã€‚如果
        tilde-prefix     是     `~-',并且设置了     shell     å˜é‡     OLDPWD,
        将使用这个å˜é‡å€¼æ¥æ›¿æ¢ã€‚如果在   tilde-prefix    中,波浪线之åŽçš„字符串
        由一个数字   N   组æˆï¼Œå‰ç¼€å¯é€‰çš„   `+'   或者  `-',那么  tilde-prefix
        将被替æ¢ä¸ºç›®å½•栈中相应的元素,就是将 tilde-prefix  ä½œä¸ºå‚æ•°æ‰§è¡Œå†…建命令
        dirs                    显示的结果。如果                   tilde-prefix
        中波浪线之åŽçš„字符是一个数字,没有å‰ç¼€ï¼Œ 那么就å‡å®šæœ‰ä¸€ä¸ª `+'。
 
        如果登录åä¸åˆæ³•,或者波浪线扩展失败,这个è¯å°†ä¸ä¼šå˜åŒ–。
 
        在å˜é‡èµ‹å€¼ä¸­ï¼Œå¯¹äºŽ : 或 = 之åŽçš„å­—ç¬¦ä¸²ä¼šç«‹å³æ£€æŸ¥æœªå¼•用的 tilde-prefix。
        è¿™ç§æƒ…况下,ä»ç„¶ä¼šè¿›è¡Œæ³¢æµªçº¿æ‰©å±•。因此,å¯ä»¥ä½¿ç”¨å¸¦æ³¢æµªçº¿çš„æ–‡ä»¶åæ¥ä¸º
        PATH, MAILPATH, å’Œ CDPATH 赋值,shell 将赋予扩展之åŽçš„值。
 
    Parameter Expansion
        字符    `$'    å¼•å…¥äº†å‚æ•°æ‰©å±•,命令替æ¢å’Œç®—æœ¯æ‰©å±•ã€‚è¦æ‰©å±•çš„å‚æ•°å或符å·
        å¯èƒ½åŒ…å«åœ¨èŠ±æ‹¬å·ä¸­ï¼ŒèŠ±æ‹¬å·å¯é€‰çš„,但是å¯ä»¥ä½¿å¾—è¦æ‰©å±•çš„å˜é‡ä¸ä¼šä¸Žç´§éšå…¶åŽ
        的字符åˆå¹¶ï¼Œæˆä¸ºæ–°çš„å称。
 
        使用花括å·çš„æ—¶å€™ï¼ŒåŒ¹é…çš„å³æ‹¬å·æ˜¯ç¬¬ä¸€ä¸ª      `}'ï¼Œå¹¶ä¸”å®ƒæ²¡æœ‰è¢«åæ–œæ å¼•用
        或包å«åœ¨ä¸€ä¸ªå¼•用的字符串中,也没有包å«åœ¨ä¸€ä¸ªåµŒå…¥çš„算术扩展,命令替æ¢
        æˆ–æ˜¯å‚æ•°æ‰©å±•中。
 
        ${parameter}
               被替æ¢ä¸º         parameter         的值。如果          parameter
               是一个ä½ç½®å‚æ•°ï¼Œå¹¶ä¸”æ•°å­—å¤šäºŽä¸€ä½æ—¶ï¼›æˆ–è€…å½“ç´§éš         parameter
               ä¹‹åŽæœ‰ä¸å±žäºŽå称一部分的字符时,都必须加上花括å·ã€‚
 
        如果  parameter   的第一个字符是一个感å¹å·ï¼Œå°†å¼•进一层间接å˜é‡ã€‚   bash
        使用以        parameter        的其余部分为åçš„å˜é‡çš„值作为å˜é‡çš„åç§°ï¼›
        æŽ¥ä¸‹æ¥æ–°çš„å˜é‡è¢«æ‰©å±•,它的值用在éšåŽçš„æ›¿æ¢å½“ä¸­ï¼Œè€Œä¸æ˜¯ä½¿ç”¨    parameter
        自身的值。这也称为  indirect expansion(间接扩展).  例外情况是下é¢è®²åˆ°çš„
        ${!prefix*}。
 
        下é¢çš„æ¯ç§æƒ…况中,word          都è¦ç«ŸÉ¡è®¼å‘ƒâ”±æ¢—问┱梗é’婊缓
        算术扩展。如果ä¸è¿›è¡Œå­å­—符串扩展,bash       测试一个没有定义或值为空的
        傿•°ï¼›å¿½ç•¥å†’å·çš„ç»“æžœæ˜¯åªæµ‹è¯•æœªå®šä¹‰çš„å‚æ•°ã€‚
 
        ${parameter:-word}
               Use       Default       Values(使用默认值)。如果       parameter
               未定义或值为空,将替æ¢ä¸º  word  的扩展。å¦åˆ™ï¼Œå°†æ›¿æ¢ä¸º parameter
               的值。
        ${parameter:=word}
               Assign Default Values(赋默认值)。如果 parameter 未定义或值为空,
               word          的扩展将赋予         parameter.          parameter
               的值将被替æ¢ã€‚ä½ç½®å‚æ•°å’Œç‰¹æ®Šå‚æ•°ä¸èƒ½ç”¨è¿™ç§æ–¹å¼èµ‹å€¼ã€‚
        ${parameter:?word}
               Display           Error           if           Null           or
               Unset(显示错误,如果未定义或值为空)。如果              parameter
               未定义或值为空,word     (或一æ¡ä¿¡æ¯ï¼Œå¦‚æžœ     word      ä¸å­˜åœ¨)
               的扩展将写入到标准错误;shell   å¦‚æžœä¸æ˜¯äº¤äº’的,则将退出。å¦åˆ™ï¼Œ
               parameter 的值将被替æ¢ã€‚
        ${parameter:+word}
               Use      Alternate       Value(使用å¯é€‰å€¼)。如果       parameter
               未定义或éžç©ºï¼Œä¸ä¼šè¿›è¡Œæ›¿æ¢ï¼›å¦åˆ™å°†æ›¿æ¢ä¸º word 扩展åŽçš„值。
        ${parameter:offset}
        ${parameter:offset:length}
               Substring   Expansion(å­å­—符串扩展)。   扩展为parameter   的最多
               length     个字符,从     offset      指定的字符开始。如果忽略了
               length,扩展为      parameter     çš„å­å­—符串,     从     offset
               指定的字符串开始。length  å’Œ  offset  æ˜¯ç®—æœ¯è¡¨è¾¾å¼   (å‚è§ä¸‹é¢çš„
               ARITHMETIC EVALUATION            值段è½)。 length 必须是一个大于等于
               0 的数值。如果  offset  求值结果å°äºŽ  0,  值将当作从  parameter
               的值的末尾算起的åç§»é‡ã€‚如果   parameter   是  @,结果是  length
               个ä½ç½®å‚数,从 offset 开始。 如果 parameter  是一个数组å,以  @
               或  *  索引,结果是数组的 length 个æˆå‘˜ï¼Œä»Ž ${parameter[offset]}
               开始。 å­å­—符串的下标是从 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}
               patterm          被扩展为一个模å¼ï¼Œå°±åƒè·¯å¾„扩展中一样。parameter
               è¢«æ‰©å±•ï¼Œå…¶å€¼ä¸­æœ€é•¿çš„åŒ¹é…    pattern    的内容被替æ¢ä¸º   string。
               在第一ç§å½¢å¼ä¸­ï¼Œåªæœ‰ç¬¬ä¸€ä¸ªåŒ¹é…被替æ¢ã€‚第二ç§å½¢å¼ä½¿å¾—     pattern
               中所有匹é…都被替æ¢ä¸º string。 如果 pattern 以 # 开始,它必须匹é…
               parameter æ‰©å±•åŽ å€¼çš„é¦–éƒ¨ã€‚å¦‚æžœ pattern  以  %  开始,它必须匹é…
               parameter     扩展åŽå€¼çš„尾部。如果     string    是空值,pattern
               的匹é…都将被删除, pattern 之åŽçš„ / 将被忽略。如果 parameter  是
               @                            或者是                           *,
               åˆ™æ›¿æ¢æ“ä½œå°†ä¾æ¬¡æ–½ç”¨äºŽæ¯ä¸ªä½ç½®å‚æ•°ï¼Œæœ€åŽæ‰©å±•为结果的列表。如果
               parameter      是一个数组å˜é‡ï¼Œä¸‹æ ‡æ˜¯      @      或者是      *,
               模å¼åˆ é™¤å°†ä¾æ¬¡æ–½ç”¨äºŽæ•°ç»„中的æ¯ä¸ªæˆå‘˜ï¼Œæœ€åŽæ‰©å±•为结果的列表。
 
    Command Substitution
        å‘½ä»¤æ›¿æ¢    (Command    substitution)    å…许以命令的输出替æ¢å‘½ä»¤å。有
        两ç§å½¢å¼ï¼š
 
               $(command)
        还有
               `command`
 
        Bash                      进行扩展的步骤是执行                     com-
        mand,以它的标准输出替æ¢å®ƒï¼Œå¹¶ä¸”将所有åŽç»­çš„
        新行符删除。内嵌的新行符ä¸ä¼šåˆ é™¤ï¼Œä½†æ˜¯å®ƒä»¬å¯èƒ½ä¼šåœ¨è¯çš„æ‹†åˆ†ä¸­è¢«åˆ é™¤ã€‚
        å‘½ä»¤æ›¿æ¢ $(cat file) å¯ä»¥ç”¨ç­‰ä»·ä½†æ˜¯æ›´å¿«çš„æ–¹æ³• $(< file) 代替。
 
        当使用旧å¼çš„åå¼•å· ("``") 替æ¢å½¢å¼æ—¶ï¼Œåæ–œæ åªæœ‰å…¶å­—颿„ä¹‰ï¼Œé™¤éž åŽé¢æ˜¯
        $,  `,  或者是  \.   第一个å‰é¢æ²¡æœ‰åæ–œæ çš„å引å·å°†ç»“æŸå‘½ä»¤æ›¿æ¢ã€‚当使用
        $(command) 形弿—¶ï¼Œæ‹¬å·ä¸­æ‰€æœ‰å­—符组æˆäº†æ•´ä¸ªå‘½ä»¤ï¼›æ²¡æœ‰è¢«ç‰¹æ®Šå¤„ç†çš„字符。
 
        命令替æ¢å¯ä»¥åµŒå¥—。è¦åœ¨ä½¿ç”¨å引å·å½¢å¼æ—¶åµŒå¥—,å¯ä»¥ç”¨åæ–œæ æ¥è½¬ä¹‰å†…层的
        å引å·ã€‚
 
        如果替æ¢å‘生在åŒå¼•å·ä¹‹ä¸­ï¼Œç»“果将ä¸è¿›è¡Œè¯çš„æ‹†åˆ†å’Œè·¯å¾„扩展。
 
    Arithmetic Expansion
        算术扩展å…许算术表达å¼çš„æ±‚值和结果的替æ¢ã€‚ç®—æœ¯æ‰©å±•çš„æ ¼å¼æ˜¯ï¼š
 
               $((expression))
 
        è¡¨è¾¾å¼                                                       expression
        被视为如åŒåœ¨åŒå¼•å·ä¹‹ä¸­ä¸€æ ·ï¼Œä½†æ˜¯æ‹¬å·ä¸­çš„åŒå¼•å·ä¸ä¼šè¢«ç‰¹æ®Šå¤„ç†ã€‚
        表达å¼ä¸­æ‰€æœ‰è¯éƒ½ç«Ÿçž¬é—®â”±æ¢—å€â”±æ¢—é’婊缓鸵玫纳境
        算术替æ¢å¯ä»¥åµŒå¥—。
 
        求值根æ®ä¸‹é¢                     值         (ARITHMETIC         EVALUATION)
        ç« èŠ‚ä¸­åˆ—å‡ºçš„è§„åˆ™è¿›è¡Œã€‚å¦‚æžœè¡¨è¾¾å¼      expression      éžæ³•,       bash
        输出错误æç¤ºæ¶ˆæ¯ï¼Œä¸ä¼šè¿›è¡Œæ›¿æ¢ã€‚
 
    Process Substitution
        Process    substitution    (进程替æ¢)    åªæœ‰åœ¨æ”¯æŒå‘½åç®¡é“   (FIFOs),
        或者支æŒä½¿ç”¨  /dev/fd  æ–¹å¼ä¸ºæ‰“开的文件命å的系统中æ‰å¯ç”¨ã€‚  å®ƒçš„å½¢å¼æ˜¯
        <(list)  或者是 >(list)。 进程 list è¿è¡Œæ—¶çš„输入或输出被连接到一个 FIFO
        或者                                                            /dev/fd
        中的文件。文件的åç§°ä½œä¸ºä¸€ä¸ªå‚æ•°è¢«ä¼ é€’到当å‰å‘½ä»¤ï¼Œä½œä¸ºæ‰©å±•的结果。
        如果使用  >(list)  å½¢å¼ï¼Œå‘文件写入相当于为   list   æä¾›è¾“入。如果使用
        <(list) å½¢å¼ï¼Œå¯ä»¥è¯»ä½œä¸ºå‚数传递 的文件æ¥èŽ·å¾— list 的输出。
 
        如果å¯èƒ½çš„è¯ï¼Œè¿›ç¨‹æ›¿æ¢æ˜¯ä¸Žå‚æ•°å’Œå˜é‡æ‰©å±•,命令替æ¢å’Œç®—æœ¯æ‰©å±•åŒæ—¶å‘生的。
 
    Word Splitting
        shell    检测ä¸åœ¨åŒå¼•å·å¼•用中å‘ç”Ÿçš„å‚æ•°æ‰©å±•,命令替æ¢å’Œç®—术扩展的结果,
        进行 word splitting(è¯çš„æ‹†åˆ†)。
 
        shell                               å°†                              IFS
        çš„æ¯ä¸ªå­—符都作为定界符,根æ®è¿™äº›å­—符æ¥å°†å…¶ä»–扩展的结果分æˆè¯ã€‚如果  IFS
        没有定义,或者它的值是默认的     <space><tab><newline>,     那么    IFS
        字符的任何åºåˆ—都将作为分界之用。如果                                IFS
        的值是默认之外的值,那么è¯å¼€å¤´å’Œç»“尾的空白字符     space     å’Œ     tab
        都将被忽略,åªè¦ç©ºç™½å­—符在  IFS  的值之内  (å³ï¼Œ  IFS   包å«ç©ºç™½å­—符)。
        任何在    IFS    ä¹‹ä¸­ä½†æ˜¯ä¸æ˜¯    IFS   空白的字符,以åŠä»»ä½•相邻的   IFS
        空白字符,将字段分隔开æ¥ã€‚ IFS  空白字符的åºåˆ—也被作为分界符。如果  IFS
        的值是空,ä¸ä¼šå‘生è¯çš„æ‹†åˆ†ã€‚
 
        显å¼ç»™å‡ºçš„ç©ºå€¼å‚æ•°         (""         或         '')        将被ä¿ç•™ã€‚
        éšå«çš„ç©ºå€¼å‚æ•°ï¼Œæ¥è‡ªäºŽç©ºå€¼çš„傿•°æ‰©å±•,如果没有引用则将被删除。
        å¦‚æžœç©ºå€¼çš„å‚æ•°åœ¨åŒå¼•å·å¼•ç”¨ä¸­æ‰©å±•ï¼Œç»“æžœæ˜¯ç©ºå€¼çš„å‚æ•°ï¼Œå°†è¢«ä¿ç•™ã€‚
 
        注æ„如果没有å‘生扩展,ä¸ä¼šè¿›è¡Œè¯çš„æ‹†åˆ†ã€‚
 
    Pathname Expansion
        è¯çš„æ‹†åˆ†ä¹‹åŽï¼Œé™¤éžè®¾ç½®è¿‡  -f  选项, bash æœç´¢æ¯ä¸ªè¯ï¼Œå¯»æ‰¾å­—符 *, ?, å’Œ
        [.       如果找到了其中之一,那么这个è¯è¢«å½“作一个       pattern(模å¼),
        被替æ¢ä¸ºåŒ¹é…这个模å¼çš„æ–‡ä»¶å以字æ¯é¡ºåºæŽ’列的列表。如果没有找到匹é…的文件å,
        并且 shell ç¦ç”¨äº† nullglob  选项,这个è¯å°†ä¸å‘生å˜åŒ–。如果设置了  null-
        glob     选项并且没有找到匹é…,这个è¯å°†è¢«åˆ é™¤ã€‚如果å¯ç”¨äº†    nocaseglob
        é€‰é¡¹ï¼ŒåŒ¹é…æ—¶å°†ä¸è€ƒè™‘å­—æ¯çš„大å°å†™ã€‚当模å¼ç”¨ä½œè·¯å¾„忉©å±•时,字符    ``.''
        如果在一个å称的开始或者紧éšä¸€ä¸ªæ–œæ ä¹‹åŽï¼Œé‚£ä¹ˆå®ƒå¿…须被显å¼åœ°åŒ¹é…,除éžè®¾ç½®äº†
        dotglob                                                           shell
        选项。当匹é…ä¸€ä¸ªè·¯å¾„åæ—¶ï¼Œæ–œæ ç¬¦å¿…须被显å¼åœ°åŒ¹é…。其他情况下,字符
        ``.''  ä¸ä¼šè¢«ç‰¹æ®Šå¯¹å¾…。å‚è§ä¸‹é¢çš„  shell         (SHELL  BUILTIN  COM-
        MANDS)  中对  shopt  的介ç»ï¼Œå…¶ä¸­æœ‰ shell 选项 nocaseglob, nullglob, å’Œ
        dotglob çš„æè¿°ã€‚
 
        环境å˜é‡ GLOBIGNORE å¯ä»¥ç”¨æ¥é™åˆ¶åŒ¹é…  pattern  的文件å集åˆã€‚如果设置了
        GLOBIGNOR,            æ¯ä¸ªåŒ¹é…的文件åå¦‚æžœåŒ¹é…            GLOBIGNORE
        中任何一个模å¼çš„è¯å°†ä»ŽåŒ¹é…çš„åˆ—è¡¨ä¸­åˆ é™¤ã€‚æ–‡ä»¶å   ``.''     å’Œ    ``..''
        总是被忽略,å³ä½¿è®¾ç½®äº†  GLOBIGNOR。但是,设置 GLOBIGNORE å’Œå¯ç”¨ shell
        选项         dotglob         效果是相åŒçš„,因此所有其他以         ``.''
        开头的文件å将被匹é…。è¦å¾—到岳å¹ç”·å½¢         (忽略所有以         ``.''
        开头的文件å),å¯ä»¥å°† ``.*''  添加为 GLOBIGNORE  的模å¼ä¹‹ä¸€ã€‚选项  dot-
        glob 被ç¦ç”¨ï¼Œå¦‚æžœ GLOBIGNORE 没有定义时。
 
        Pattern Matching
 
        任何模å¼ä¸­å‡ºçŽ°çš„å­—ç¬¦ï¼Œé™¤äº†ä¸‹é¢æè¿°çš„ç‰¹æ®Šæ¨¡å¼å­—符外,都匹é…它本身。
        模å¼ä¸­ä¸èƒ½å‡ºçް NUL 字符。如果è¦åŒ¹é…å­—é¢ä¸Šçš„特殊模å¼å­—符,它必须被引用。
 
        特殊模å¼å­—符有下述æ„义:
 
        *      匹é…任何字符串包å«ç©ºä¸²ã€‚
        ?      匹é…任何å•个字符。
        [...]  åŒ¹é…æ‰€åŒ…å«çš„任何字符之一。用一个连字符                     (`-')
               åˆ†éš”çš„ä¸€å¯¹å­—ç¬¦æ„æ€æ˜¯ä¸€ä¸ª   range    expression    (范围表达å¼)ï¼›
               任何排在它们之间的字符,包å«å®ƒä»¬ï¼Œéƒ½è¢«åŒ¹é…。
               排åºä½¿ç”¨å½“å‰è¯­è¨€çŽ¯å¢ƒçš„å­—ç¬¦é¡ºåºå’Œå­—符集。如果                   [
               之åŽçš„第一个字符是一个           !           或是一个          ^
               那么任何ä¸åŒ…å«åœ¨å†…的字符将被匹é…。范围表达å¼ä¸­å­—ç¬¦çš„é¡ºåºæ˜¯ç”±å½“å‰è¯­è¨€çŽ¯å¢ƒ
               和环境å˜é‡   LC_COLLATE  的值  (如果设置了的è¯)  决定的。一个  -
               åªæœ‰ä½œä¸ºé›†åˆä¸­ç¬¬ä¸€ä¸ªæˆ–最åŽä¸€ä¸ªå­—符时æ‰èƒ½è¢«åŒ¹é…。一个           ]
               åªæœ‰æ˜¯é›†åˆä¸­ç¬¬ä¸€ä¸ªå­—符时æ‰èƒ½è¢«åŒ¹é…。
 
               在  [  å’Œ  ]  中,character  classes  (字符类)  å¯ä»¥ç”¨ [:class:]
               è¿™æ ·çš„è¯­æ³•æ¥æŒ‡å®šï¼Œè¿™é‡Œ        class         是在         POSIX.2
               标准中定义的下列类å之一:
               alnum  alpha  ascii  blank  cntrl  digit graph lower print punct
               space upper word xdigit
               一个字符类匹é…任何属于这一类的字符。word
               字符类匹é…å­—æ¯ï¼Œæ•°å­—和字符 _。
 
               在  [  å’Œ  ] 中,å¯ä»¥ç”¨ [=c=] è¿™æ ·çš„è¯­æ³•æ¥æŒ‡å®š equivalence class
               (等价类)。它匹é…与字符     c      有相åŒå½’å¹¶æƒå€¼      (collation
               weightï¼Œç”±å½“å‰ è¯­è¨€çŽ¯å¢ƒå®šä¹‰) 的字符。
 
               在  [  å’Œ  ] 中,语法 [.symbol.] 匹é…å½’å¹¶ç¬¦å· (collating symbol)
               symbol。
 
        如果使用内建命令     shopt     å¯ç”¨äº†     shell     选项      extglob,
        将识别å¦å¤–å‡ ç§æ¨¡å¼åŒ¹é…æ“作符。下é¢çš„æè¿°ä¸­ï¼Œpattern-list         是一个
        或多个模å¼ä»¥      |      分隔的列表。å¤åˆçš„æ¨¡å¼å¯ä»¥ä½¿ç”¨ä¸€ä¸ªæˆ–多个下列的
        å­æ¨¡å¼æž„造出æ¥ï¼š
 
               ?(pattern-list)
                      åŒ¹é…æ‰€ç»™æ¨¡å¼é›¶æ¬¡æˆ–一次出现
               *(pattern-list)
                      åŒ¹é…æ‰€ç»™æ¨¡å¼é›¶æ¬¡æˆ–多次出现
               +(pattern-list)
                      åŒ¹é…æ‰€ç»™æ¨¡å¼ä¸€æ¬¡æˆ–多次出现
               @(pattern-list)
                      å‡†ç¡®åŒ¹é…æ‰€ç»™æ¨¡å¼ä¹‹ä¸€
               !(pattern-list)
                      ä»»ä½•é™¤äº†åŒ¹é…æ‰€ç»™æ¨¡å¼ä¹‹ä¸€çš„字串
 
    Quote Removal
        竟懊娴ç¦â”±æ€ªèž…å½¢åŒ†çŽ«æ·–å€  \, ', 以åŠå¹¶éžä¸Šè¿°æ‰©å±•结果的字符 "
        都被删除。
 
           (REDIRECTION)
        在命令执行å‰ï¼Œå®ƒçš„输入和输出å¯èƒ½è¢« redirected (            )ä½¿ç”¨ä¸€ç§ shell
        å¯ä»¥è§£é‡Šçš„特殊记法。é‡å®šå‘也å¯ä»¥ç”¨äºŽä¸ºå½“å‰        shell        执行环境
        打开和关闭文件。下列é‡å®šå‘æ“作符å¯ä»¥å‰ç½®æˆ–者放在     simple     command
        (             )               之中的任何ä½ç½®ï¼Œæˆ–者放在               command
        之åŽã€‚é‡å®šå‘是以出现的顺åºè¿›è¡Œå¤„ç†çš„,从左到å³ã€‚
 
        下列æè¿°ä¸­ï¼Œå¦‚果文件æè¿°ç¬¦è¢«å¿½ç•¥ï¼Œå¹¶ä¸”第一个é‡å®šå‘æ“作符是           <,
        那么é‡å®šå‘指的是标准输入                                  (文件æè¿°ç¬¦æ˜¯
        0)。如果é‡å®šå‘æ“作符的第一个字符是     >,      那么é‡å®šå‘指的是标准输出
        (文件æè¿°ç¬¦æ˜¯ 1)。
 
        下列æè¿°ä¸­ï¼Œé‡å®šå‘æ“作符之åŽçš„è¯å¦‚果没有特殊说明,都è¦ç«Ÿ  brace expan-
        sion,  tilde  expansion,  parameter  expansion,  command  substitution,
        arithmetic  expansion,  quote  removal,  pathname  expansion, 还有 word
        splitting。如果扩展为多于一个è¯ï¼Œ bash 将报错。
 
        注æ„é‡å®šå‘的顺åºéžå¸¸é‡è¦ã€‚例如,命令
 
               ls > dirlist 2>&1
 
        将标准输出和标准错误é‡å®šå‘到文件 dirlist, 而命令
 
               ls 2>&1 > dirlist
 
        åªä¼šå°†æ ‡å‡†è¾“出é‡å®šå‘到文件    dirlist,     因为在标准输出被é‡å®šå‘到文件
        dirlist 中之å‰ï¼Œæ ‡å‡†é”™è¯¯è¢«å¤åˆ¶ä¸ºæ ‡å‡†è¾“出。
 
        一些文件å在é‡å®šå‘中被 bash 特殊处ç†ï¼Œå¦‚下表所示:
 
               /dev/fd/fd
                      如果 fd æ˜¯ä¸€ä¸ªåˆæ³•的整数,文件æè¿°ç¬¦ fd 将被å¤åˆ¶ã€‚
               /dev/stdin
                      文件æè¿°ç¬¦ 0 被å¤åˆ¶ã€‚
               /dev/stdout
                      文件æè¿°ç¬¦ 1 被å¤åˆ¶ã€‚
               /dev/stderr
                      文件æè¿°ç¬¦ 2 被å¤åˆ¶ã€‚
               /dev/tcp/host/port
                      如果  host  æ˜¯ä¸€ä¸ªåˆæ³•çš„ä¸»æœºåæˆ– Internet 地å€ï¼Œå¹¶ä¸” port
                      是 一个整数端å£å·æˆ–æœåŠ¡å,bash  试图建立与相应的  socket
                      (套接字) 的 TCP 连接。
               /dev/udp/host/port
                      如果  host  æ˜¯ä¸€ä¸ªåˆæ³•çš„ä¸»æœºåæˆ– Internet 地å€ï¼Œå¹¶ä¸” port
                      是 一个整数端å£å·æˆ–æœåŠ¡å,bash  试图建立与相应的  socket
                      (套接字) 的 UDP 连接。
 
        打开或创建文件错误将导致é‡å®šå‘出错。
 
    Redirecting Input
        é‡å®šå‘输入使得以    word   扩展结果为å的文件被打开并通过文件æè¿°ç¬¦   n
        读å–,如果没有指定 n 那么就作为标准输入 (文件æè¿°ç¬¦ä¸º 0) 读å–。
 
        é‡å®šå‘è¾“å…¥çš„ä¸€èˆ¬å½¢å¼æ˜¯ï¼š
 
               [n]<word
 
    Redirecting Output
        é‡å®šå‘输出使得以   word   扩展结果为å的文件被打开并通过文件æè¿°ç¬¦    n
        写入,如果没有指定 n 那么就作为标准输出 (文件æè¿°ç¬¦ä¸º 1) 写入。
 
        é‡å®šå‘çš„ä¸€èˆ¬å½¢å¼æ˜¯ï¼š
 
               [n]>word
 
        如果é‡å®šå‘æ“作符是    >,    并且å¯ç”¨äº†å†…建命令    set   çš„   noclobber
        选项,那么如果    word     扩展åŽå¾—到的文件å存在并且是一个普通的文件,
        é‡å®šå‘将失败。如果é‡å®šå‘æ“作符是      >|,      或者é‡å®šå‘æ“作符是     >
        并且没有å¯ç”¨å†…建命令   set    çš„    noclobber    选项,那么å³ä½¿    word
        得出的文件å存在,也会å°è¯•进行é‡å®šå‘。
 
    Appending Redirected Output                                               )
        è¿™ç§æ–¹å¼çš„输出é‡å®šå‘使得以                                         word
        扩展结果为å的文件被打开并通过文件æè¿°ç¬¦ n  从尾部添加。如果没有指定  n
        就使用标准输出 (文件æè¿°ç¬¦ 1)。如果文件ä¸å­˜åœ¨ï¼Œå®ƒå°†è¢«åˆ›å»ºã€‚
 
        é‡å®šå‘çš„ä¸€èˆ¬å½¢å¼æ˜¯ï¼š
 
               [n]>>word
 
    Redirecting Standard Output and Standard Error
        Bash   å…许使用这ç§ç»“构将标准输出和标准错误   (文件æè¿°ç¬¦   1   å’Œ   2)
        é‡å®šå‘到以 word 扩展结果为å的文件中。
 
        有两ç§é‡å®šå‘标准输出/标准错误的形å¼ï¼š
 
               &>word
        还有
               >&word
 
        两ç§å½¢å¼ä¸­ï¼ŒæŽ¨è使用第一ç§ã€‚它与
 
               >word 2>&1
        在语义上等价。
 
    Here Documents
        è¿™ç§é‡å®šå‘使得 shell ä»Žå½“å‰æºæ–‡ä»¶è¯»å–输入,直到é‡åˆ°ä»…åŒ…å«  word  的一行
        (并且没有尾部空白,trailing    blanks)   为止。直到这一点的所有行被用作
        命令的标准输入。
 
        here-document çš„æ ¼å¼æ˜¯ï¼š
 
               <<[-]word
                       here-document
               delimiter
 
        ä¸ä¼šå¯¹ word 进行 parameter expansion, command substitution,  arithmetic
        expansion,  或者  pathname  expansion。如果  word  中任何字符是引用的,
        delimiter      将是对      word       进行引用删除的结果,here-document
        中的行ä¸ä¼šè¢«æ‰©å±•。如果 word 没有被引用,here-documnet 中的所有行都è¦ç«Ÿ
        parameter expansion, command substitution,  和  arithmetic  expansion。
        在åŽä¸€ç§æƒ…况下,字符åºåˆ—  \<newline>  被忽略;必须用 \ æ¥å¼•用字符 \, $,
        和 `.
 
        如果é‡å®šå‘æ“作符是  <<-,  那么所有å‰å¯¼çš„   tab   字符都被从输入行和包å«
        delimiter    的行中删除。这样使得    shell    脚本中的    here-document
        å¯ä»¥è¢«æ›´å¥½åœ°ç¼©è¿›ã€‚
 
    Here Strings
        here-document çš„å˜ç§ï¼Œå½¢å¼æ˜¯
 
               <<<word
 
        word 被扩展,æä¾›ç»™å‘½ä»¤ä½œä¸ºæ ‡å‡†è¾“入。
 
    Duplicating File Descriptors                        )
        é‡å®šå‘æ“作符
 
               [n]<&word
 
        用于å¤åˆ¶æ–‡ä»¶æè¿°ç¬¦ã€‚如果      word       扩展为一个或多个数字,       n
        代表的文件æè¿°ç¬¦å°†æˆä¸ºé‚£ä¸ªæ–‡ä»¶æè¿°ç¬¦çš„å¤åˆ¶ã€‚如果                   word
        中的数字并未指定一个被用于读å–的文件æè¿°ç¬¦ï¼Œå°†äº§ç”Ÿä¸€ä¸ªé‡å®šå‘错误。如果
        word  扩展为  -, 文件æè¿°ç¬¦ n 将被关闭。如果没有指定 n将使用标准输入
        (文件æè¿°ç¬¦ 0)。
 
        类似的,æ“作符
 
               [n]>&word
 
        用于å¤åˆ¶è¾“出文件æè¿°ç¬¦ã€‚如果没有指定  n_将使用标准输出   (文件æè¿°ç¬¦
        1)。如果                                                           word
        中的数字并未指定一个被用于输出的文件æè¿°ç¬¦ï¼Œå°†äº§ç”Ÿä¸€ä¸ªé‡å®šå‘错误。
        特殊情况下,如果忽略了    n,并且    word    å¹¶éžæ‰©å±•为一个或多个数字,
        标准输出和标准错误将被é‡å®šå‘,和å‰é¢æè¿°çš„一样。
 
    Moving File Descriptors
        é‡å®šå‘æ“作符
 
 
               [n]<&digit-
        将文件æè¿°ç¬¦   digit   移动为文件æè¿°ç¬¦   n,   或标准输入   (文件æè¿°ç¬¦
        0),如果没有指定 n çš„è¯ã€‚ digit å¤åˆ¶ä¸º n 之åŽå°±è¢«å…³é—­äº†ã€‚
 
        类似的,é‡å®šå‘æ“作符
 
 
               [n]>&digit-
        将文件æè¿°ç¬¦   digit   移动为文件æè¿°ç¬¦   n,   或标准输出   (文件æè¿°ç¬¦
        1),如果没有指定 n çš„è¯ã€‚
 
    Opening File Descriptors for Reading and Writing
        é‡å®šå‘æ“作符
 
               [n]<>word
 
        使得以      word       扩展结果为å的文件被打开,通过文件æè¿°ç¬¦       n
        进行读写。如果没有指定              n              那么就使用文件æè¿°ç¬¦
        0。如果文件ä¸å­˜åœ¨ï¼Œå®ƒå°†è¢«åˆ›å»ºã€‚
 
       (ALIASES)
        Aliases       (åˆ«åæœºåˆ¶)       å…è®¸å°†ä¸€ä¸ªè¯æ¥æ›¿æ¢ä¸ºä¸€ä¸ªå­—符串,如果它是
        一个简å•命令的第一个è¯çš„è¯ã€‚shell 记录ç€ä¸€ä¸ªåˆ«å列表,å¯ä»¥ä½¿ç”¨ 内建命令
        alias å’Œ unalias æ¥å®šä¹‰å’Œå–消 (å‚è§ä¸‹é¢çš„ shell        (SHELL  BUILTIN
        COMMANDS)
        章节)。æ¯ä¸ªå‘½ä»¤çš„第一个è¯ï¼Œå¦‚æžœæ²¡æœ‰å¼•ç”¨ï¼Œéƒ½å°†è¢«æ£€æŸ¥æ˜¯å¦æ˜¯ä¸€ä¸ªåˆ«å。
        如果是,这个è¯å°†è¢«å®ƒæ‰€æŒ‡ä»£çš„æ–‡æœ¬æ›¿æ¢ã€‚别å和替æ¢çš„æ–‡æœ¬å¯ä»¥åŒ…å«ä»»ä½•有效
        çš„     shell     输入,包å«ä¸Šé¢åˆ—出的      metacharacters      (            )
        ,特殊情况是别å中ä¸èƒ½åŒ…å«            =ã€‚æ›¿æ¢æ–‡æœ¬çš„第一个è¯ä¹Ÿè¢«æ£€æŸ¥æ˜¯å¦
        是别å,但是如果它与被替æ¢çš„别å相åŒï¼Œå°±ä¸ä¼šå†æ›¿æ¢ç¬¬äºŒæ¬¡ã€‚è¿™æ„味ç€å¯ä»¥ç”¨
        ls          作为          ls          -F          的别å,         bash
        ä¸ä¼šé€’å½’åœ°å±•å¼€æ›¿æ¢æ–‡æœ¬ã€‚如果别å的最åŽä¸€ä¸ªå­—符是                 blank,
        那么命令中别å之åŽçš„下一个è¯ä¹Ÿå°†è¢«æ£€æŸ¥æ˜¯å¦èƒ½è¿›è¡Œåˆ«å展开。
 
        别åå¯ä»¥ä½¿ç”¨ alias 命令æ¥åˆ›å»ºæˆ–列举出æ¥ï¼Œä½¿ç”¨ unalias 命令æ¥åˆ é™¤ã€‚
 
        åœ¨æ›¿æ¢æ–‡æœ¬ä¸­æ²¡æœ‰å‚数机制。如果需è¦å‚数,应当使用 shell 函数 (å‚è§ä¸‹é¢çš„
        FUNCTIONS    ) 段è½)。
 
        如果 shell  䏿˜¯äº¤äº’的,别åå°†ä¸ä¼šå±•开,除éžä½¿ç”¨å†…建命令  shopt  设置了
        expand_aliases 选项。
 
        关于别å的定义和使用中的规则比较混乱。                             Bash
        在执行一行中的任何命令之å‰ï¼Œæ€»æ˜¯è¯»å…¥è‡³å°‘完整一行的输入。
        别ååœ¨å‘½ä»¤è¢«è¯»å–æ—¶å±•å¼€ï¼Œè€Œä¸æ˜¯åœ¨æ‰§è¡Œçš„æ—¶å€™ã€‚因此,别å定义如果
        å’Œå¦ä¸€ä¸ªå‘½ä»¤åœ¨åŒä¸€è¡Œï¼Œé‚£ä¹ˆä¸ä¼šèµ·ä½œç”¨ï¼Œé™¤éžè¯»å…¥äº†ä¸‹ä¸€è¡Œã€‚
        别å定义之åŽï¼ŒåŒä¸€è¡Œä¸­çš„命令ä¸ä¼šå—新的别åå½±å“。这ç§è¡Œä¸º
        åœ¨å‡½æ•°æ‰§è¡Œæ—¶å­˜åœ¨äº‰è®®ï¼Œå› ä¸ºåˆ«åæ›¿æ¢æ˜¯åœ¨å‡½æ•°å®šä¹‰è¢«è¯»å–æ—¶å‘生的,
        è€Œä¸æ˜¯å‡½æ•°è¢«æ‰§è¡Œçš„æ—¶å€™ï¼Œå› ä¸ºå‡½æ•°å®šä¹‰æœ¬èº«æ˜¯ä¸€ä¸ªå¤åˆå‘½ä»¤ã€‚结果,
        在函数中定义的别ååªæœ‰å½“这个函数执行完æ‰ä¼šç”Ÿæ•ˆã€‚为了ä¿é™©èµ·è§ï¼Œ
        应当总是将别å定义放在å•独的一行,ä¸åœ¨å¤åˆå‘½ä»¤ä¸­ä½¿ç”¨ alia。
 
        ä¸ç®¡ä»€ä¹ˆæƒ…况下,别å都被 shell 函数超越 (be superseded)。
 
    (FUNCTIONS)
        一个          shell          å‡½æ•°ï¼Œä»¥ä¸Šé¢         SHELL         GRAMMAR
        中æè¿°çš„æ–¹æ³•定义,ä¿å­˜ç€ä¸€ç³»åˆ—的命令,等待ç¨åŽæ‰§è¡Œã€‚      当      shell
        函数å作为一个简å•命令å使用时,这个函数åå…³è”的命令的åºåˆ—
        è¢«æ‰§è¡Œã€‚å‡½æ•°åœ¨å½“å‰     shell     的上下文环境中执行;ä¸ä¼šåˆ›å»ºæ–°çš„进程æ¥
        解释它们    (这与    shell    脚本的执行形æˆäº†å¯¹æ¯”)。当执行函数时,函数
        çš„å‚æ•°æˆä¸ºæ‰§è¡Œè¿‡ç¨‹ä¸­çš„ä½ç½®å‚æ•°  (positional   parameters)ã€‚ç‰¹æ®Šå‚æ•°   #
        è¢«æ›´æ–°ä»¥åæ˜ è¿™ä¸ªå˜åŒ–。ä½ç½®å‚æ•°    0   ä¸ä¼šæ”¹å˜ã€‚函数执行时,   FUNCNAME
        å˜é‡è¢«è®¾ç½®ä¸ºå‡½æ•°çš„å称。函数和它的调用者在     shell     执行环境的所有
        å…¶ä»–æ–¹é¢éƒ½æ˜¯ä¸€æ ·çš„,特殊情况是   DEBUG  陷阱  (å‚è§ä¸‹é¢å¯¹å†…建函数  trap
        çš„æè¿°ï¼Œåœ¨   shell           (SHELL    BUILTIN    COMMANDS)    章节中)
        ä¸ä¼šè¢«ç»§æ‰¿ï¼Œé™¤éžå‡½æ•°è®¾ç½®äº†   trace   属性  (å‚è§ä¸‹é¢å¯¹å†…建函数  declare
        çš„æè¿°)。
 
        函数中的局部å˜é‡å¯ä»¥ä½¿ç”¨å†…建命令                                  local
        æ¥å£°æ˜Žã€‚通常情况下,å˜é‡å’Œå®ƒä»¬çš„值在函数和它的调用者之间是共享的。
 
        如果函数中执行了内建命令                                       retur,
        那么函数结æŸï¼Œæ‰§è¡Œä»Žå‡½æ•°è°ƒç”¨ä¹‹åŽçš„下一个命令开始。
        函数结æŸåŽï¼Œä½ç½®å‚数的值以åŠç‰¹æ®Šå‚æ•° # 都将é‡ç½®ä¸ºå®ƒä»¬åœ¨å‡½æ•°æ‰§è¡Œå‰çš„值。
 
        函数å和定义å¯ä»¥ä½¿ç”¨å†…建命令    declare    或    typeset    加上     -f
        傿•°æ¥åˆ—出。如果在     declare     或     typeset     命令中使用     -F
        选项将åªåˆ—出函数å。函数å¯ä»¥ä½¿ç”¨å†…建命令      export      加上       -f
        傿•°å¯¼å‡ºï¼Œä½¿å¾—å­ shell 中它们被自动定义。
 
        函数å¯ä»¥æ˜¯é€’归的。对于递归调用的次数没有硬性é™åˆ¶ã€‚
        在一定的环境下,shell  å…许进行算术表达å¼çš„æ±‚值  (å‚è§å†…建命令  let  å’Œ
        Arithmetic                  Expansion                   (算术表达å¼))。
        æ±‚å€¼ä½¿ç”¨å›ºå®šå®½åº¦çš„æ•´æ•°ï¼Œä¸æ£€æŸ¥æ˜¯å¦æº¢å‡ºï¼Œä½†æ˜¯è¢«é›¶é™¤ä¼šè¢«æ•获,标记为错误。
        æ“作数åŠå…¶ä¼˜å…ˆçº§å’Œèšåˆç¨‹åº¦ä¸Ž   C   语言中相åŒã€‚下列æ“作数的列表按照相åŒ
        优先级的æ“作数其级别æ¥åˆ†ç»„ã€‚åˆ—å‡ºçš„çº§åˆ«é¡ºåºæ˜¯ä¼˜å…ˆçº§é€’å‡çš„。
 
        id++ id--
               å˜é‡è‡ªå¢ž/è‡ªå‡ (在åŽ)
        ++id --id
               å˜é‡è‡ªå¢ž/è‡ªå‡ (在å‰)
        - +    (å•目的) å–è´Ÿ/å–æ­£
        ! ~    逻己臀è—》
        **     乘幂
        * / %  乘,除,å–ä½™
        + -    加,å‡
        << >>  å·¦/å³ä½ç§»
        <= >= < >
               比较
        == !=  相等/ä¸ç­‰
        &      ä½ä¸Ž (AND)
        ^      ä½å¼‚或 (exclusive OR)
        |      使ˆ– (OR)
        &&     逻加 (AND)
        ||     逻蓟 (OR)
        expr?expr:expr
               æ¡ä»¶æ±‚值
        = *= /= %= += -= <<= >>= &= ^= |=
               赋值
        expr1 , expr2
               逗å·è¡¨è¾¾å¼
 
        shell              å˜é‡å¯ä»¥ä½œä¸ºæ“ä½œæ•°ï¼›åœ¨è¡¨è¾¾å¼æ±‚值之å‰ä¼šè¿›è¡Œå‚数扩展。
        在表达å¼ä¸­ï¼Œå¯ä»¥ç”¨å称引用     shell     å˜é‡ï¼Œä¸å¿…ä½¿ç”¨å‚æ•°æ‰©å±•的语法。
        å˜é‡è¢«å¼•ç”¨æ—¶ï¼Œå…¶å€¼è¢«ä½œä¸ºç®—æœ¯è¡¨è¾¾å¼æ¥æ±‚值。                        shell
        å˜é‡ç”¨äºŽè¡¨è¾¾å¼ä¸­æ—¶ï¼Œä¸å¿…å¯ç”¨æ•´æ•°å±žæ€§ã€‚
 
        以 0 为å‰å¯¼çš„常é‡è¢«å½“作八进制数,以 0x 或  0X  作为å‰å¯¼è¡¨æ˜Žæ˜¯å六进制。
        å…¶ä»–æƒ…å†µä¸‹ï¼Œæ•°å­—çš„å½¢å¼æ˜¯   [base#]n,这里   base   是一个   2   到   64
        çš„å进制数值,作为数字的基数,n   是在这个基数中数字的值。   如果忽略了
        base#,将以  10 为基数。大于 10 çš„æ•°å­—ä¾æ¬¡ä»¥å°å†™å­—æ¯ï¼Œ 大写字æ¯ï¼Œ@ å’Œ _
        表示。如果   base    å°äºŽæˆ–等于    36,在表示    10    与    35    之间
        的数字时å°å†™å­—æ¯å’Œå¤§å†™å­—æ¯å¯ä»¥äº’æ¢ã€‚
 
        æ“作符根æ®ä¼˜å…ˆçº§é¡ºåºè¿›è¡Œæ±‚值。圆括å·ä¸­çš„å­è¡¨è¾¾å¼è¢«æœ€å…ˆæ±‚值,å¯èƒ½ä¼š
        超越上é¢çš„优先级规则。
        æ¡ä»¶è¡¨è¾¾å¼ç”¨äºŽ    [[    å¤åˆå‘½ä»¤ä»¥åŠå†…建命令    test    å’Œ    [    中,
        ç”¨æ¥æµ‹è¯•文件属性,进行字符串和算术比较。表达å¼ä½¿ç”¨ä¸‹é¢çš„å•目或二进制æ“作构造。
        å¦‚æžœæŸæ“作的任何  file  傿•°çš„形弿˜¯  /dev/fd/n,那么将检查  文件æè¿°ç¬¦
        nã€‚å¦‚æžœæŸæ“作的  file  傿•°æ˜¯ /dev/stdin, /dev/stdout 或者 /dev/stderr
        之一,将分别检查文件æè¿°ç¬¦ 0,1 å’Œ 2。
 
        -a file
               如果 file 存在则为真。
        -b file
               如果 file 存在且为å—设备则为真。
        -c file
               如果 file 存在且为字符设备则为真。
        -d file
               如果 file 存在且是一个目录则为真。
        -e file
               如果 file 存在则为真。
        -f file
               如果 file 存在且为普通文件则为真。
        -g file
               如果 file 存在且是设置组ID的 (sgid) 则为真。
        -h file
               如果 file 存在且为符å·é“¾æŽ¥åˆ™ä¸ºçœŸã€‚
        -k file
               如果 file 存在且设置了 ``sticky'' ä½ (粘滞ä½) 则为真。
        -p file
               如果 file 存在且是一个命åç®¡é“ (FIFO) 则为真。
        -r file
               如果 file 存在且å¯è¯»åˆ™ä¸ºçœŸã€‚
        -s file
               如果 file 存在且大å°å¤§äºŽé›¶åˆ™ä¸ºçœŸã€‚
        -t fd  如果文件æè¿°ç¬¦ fd 是打开的且对应一个终端则为真。
        -u file
               如果 file 存在且是设置用户ID的 (suid) 则为真。
        -w file
               如果 file 存在且å¯å†™åˆ™ä¸ºçœŸã€‚
        -x file
               如果 file å­˜åœ¨ä¸”å¯æ‰§è¡Œåˆ™ä¸ºçœŸã€‚
        -O file
               如果 file 存在且为有效用户ID所拥有则为真。
        -G file
               如果 file 存在且为有效组ID所拥有则为真。
        -L file
               如果 file 存在且为符å·é“¾æŽ¥åˆ™ä¸ºçœŸã€‚
        -S file
               如果 file 存在且为套接字则为真。
        -N file
               如果 file 存在且上次读å–åŽè¢«ä¿®æ”¹è¿‡åˆ™ä¸ºçœŸã€‚
        file1 -nt file2
               如果 file1 比 file2 è¦æ–° (æ ¹æ®ä¿®æ”¹æ—¥æœŸ),或者 如果 file1  存在而
               file2 ä¸å­˜åœ¨ï¼Œåˆ™ä¸ºçœŸã€‚
        file1 -ot file2
               如果  file1  比  file2  更旧,或者  如果  file1  ä¸å­˜åœ¨è€Œ  file2
               存在,则为真。
        file1 -ef file2
               如果 file1 å’Œ file2 指的是相åŒçš„设备和 inode å·åˆ™ä¸ºçœŸã€‚
        -o optname
               如果å¯ç”¨äº† shell 选项 optname 则为真。å‚è§ä¸‹é¢å¯¹å†…建命令 set  çš„
               -o 选项的æè¿°ä¸­çš„选项列表。
        -z string
               如果 string 的长度为 0 则为真。
        -n string
        string 如果 string çš„é•¿åº¦éž 0 则为真。
        string1 == string2
               如果字符串相等则为真。=   å¯ä»¥ç”¨äºŽä½¿ç”¨   ==  çš„åœºåˆæ¥å…¼å®¹  POSIX
               规范。
        string1 != string2
               如果字符串ä¸ç›¸ç­‰åˆ™ä¸ºçœŸã€‚
        string1 < string2
               如果 string1 在当å‰è¯­è¨€çŽ¯å¢ƒçš„å­—å…¸é¡ºåºä¸­æŽ’在 string2 之å‰åˆ™ä¸ºçœŸã€‚
        string1 > string2
               如果 string1 在当å‰è¯­è¨€çŽ¯å¢ƒçš„å­—å…¸é¡ºåºä¸­æŽ’在 string2 之åŽåˆ™ä¸ºçœŸã€‚
        arg1 OP arg2
               OP    是    -eq,    -ne,    -lt,    -le,     -gt,     或     -ge
               之一。这些算术二进制æ“作返回真,如果   arg1   与   arg2   分别是
               相等,ä¸ç­‰ï¼Œå°äºŽï¼Œå°äºŽæˆ–等于,大于,大于或等于关系。   Arg1   å’Œ
               arg2 å¯ä»¥æ˜¯æ­£/负整数。
        当执行一个简å•命令时,shell 进行下列扩展,赋值和é‡å®šå‘,从左到å³ã€‚
 
        1.     解释器标记为与å˜é‡èµ‹å€¼                          (在命令å之å‰çš„)
               å’Œé‡å®šå‘有关的è¯è¢«ä¿å­˜ç­‰å¾…éšåŽå¤„ç†ã€‚
 
        2.     å¹¶éžå˜é‡èµ‹å€¼æˆ–é‡å®šå‘çš„è¯è¢«æ‰©å±•。如果扩展åŽä»ç„¶æœ‰è¯ä¿ç•™ä¸‹æ¥ï¼Œç¬¬ä¸€ä¸ªè¯è¢«
               作为命令åï¼Œå…¶ä½™è¯æ˜¯å‚数。
 
        3.     é‡å®šå‘æŒ‰ç…§ä¸Šé¢ REDIRECTION 中讲到的规则进行。
 
        4.     æ¯ä¸ªå˜é‡èµ‹å€¼ä¸­    =    之åŽçš„æ–‡æœ¬åœ¨èµ‹äºˆå˜é‡ä¹‹å‰è¦ç«ŸÉ¡è®¼å‘ƒâ”±æ¢—
               傿•°æ‰©å±•,命令替æ¢ï¼Œç®—术扩展和引用删除。
 
        如果没有得到命令å,å˜é‡èµ‹å€¼å½±å“å½“å‰    shell    环境。å¦åˆ™ï¼Œå˜é‡è¢«åŠ å…¥
        被执行的命令的环境中,ä¸å½±å“å½“å‰    shell    环境。如果任何赋值动作试图
        为åªè¯»å˜é‡èµ‹å€¼ï¼Œå°†å¯¼è‡´å‡ºé”™ï¼Œå‘½ä»¤ä»¥éžé›¶çжæ€å€¼é€€å‡ºã€‚
 
        如果没有得到命令å,é‡å®šå‘ä»ä¼šè¿›è¡Œï¼Œä½†æ˜¯ä¸å½±å“å½“å‰     shell     环境。
        é‡å®šå‘出错将使命令以éžé›¶çжæ€å€¼é€€å‡ºã€‚
 
        å¦‚æžœæ‰©å±•åŽæœ‰å‘½ä»¤åä¿ç•™ä¸‹æ¥ï¼Œé‚£ä¹ˆæ‰§è¡Œè¿‡ç¨‹å¦‚下所示。å¦åˆ™ï¼Œå‘½ä»¤é€€å‡ºã€‚
        如果在任何扩展中包å«å‘½ä»¤æ›¿æ¢ï¼Œé‚£ä¹ˆæ•´ä¸ªå‘½ä»¤çš„é€€å‡ºçŠ¶æ€æ˜¯æœ€åŽä¸€ä¸ªå‘½ä»¤
        替æ¢çš„退出状æ€ã€‚如果没有进行命令替æ¢ï¼Œå‘½ä»¤ä»¥çжæ€é›¶é€€å‡ºã€‚
        命令被拆分为è¯ä¹‹åŽï¼Œå¦‚果结果是一个简å•命令和å¯é€‰çš„傿•°åˆ—表,将执行
        下é¢çš„æ“ä½œã€‚
 
        如果命令å中没有斜æ ï¼Œshell   试图定ä½å‘½ä»¤ä½ç½®ã€‚如果存在åŒåçš„    shell
        函数,函数将被执行,åƒä¸Šé¢                                    FUNCTIONS
        中讲到的一样。如果åç§°ä¸æ˜¯ä¸€ä¸ªå‡½æ•°ï¼Œshell 从 内建命令中æœç´¢å®ƒã€‚如果找到
        对应命令,它将被执行。
 
        如果åç§°æ—¢ä¸æ˜¯  shell  å‡½æ•°ä¹Ÿä¸æ˜¯ä¸€ä¸ªå†…å»ºå‘½ä»¤ï¼Œå¹¶ä¸”æ²¡æœ‰åŒ…å«æ–œæ ï¼Œ  bash
        æœç´¢  PATH  çš„æ¯ä¸ªæˆå‘˜ï¼ŒæŸ¥æ‰¾å«æœ‰æ­¤æ–‡ä»¶å  (坿‰§è¡Œæ–‡ä»¶)  的目录。   Bash
        使用散列表æ¥å‚¨å­˜å¯æ‰§è¡Œæ–‡ä»¶çš„全路径   (å‚è§ä¸‹é¢çš„  shell         (SHELL
        BUILTIN COMMANDS) 中的 has。 åªæœ‰åœ¨æ•£åˆ—表中没有找到此命令,æ‰å¯¹  PATH
        进行完整的æœç´¢ã€‚如果æœç´¢ä¸æˆåŠŸï¼Œshell 输出错误消æ¯ï¼Œè¿”å›žé€€å‡ºçŠ¶æ€ 127。
 
        如果æœç´¢æˆåŠŸï¼Œæˆ–è€…å‘½ä»¤ä¸­åŒ…å«ä¸€ä¸ªæˆ–多个斜æ ï¼Œshell    在å•独的执行环境中
        执行这个程åºã€‚傿•°                                                    0
        被设置为所给åç§°ï¼›å‘½ä»¤çš„å…¶ä»–å‚æ•°è¢«è®¾ç½®ä¸ºæ‰€ç»™çš„傿•°ï¼Œ 如果有的è¯ã€‚
 
        å¦‚æžœæ‰§è¡Œå¤±è´¥ï¼Œå› ä¸ºæ–‡ä»¶ä¸æ˜¯å¯æ‰§è¡Œæ ¼å¼ï¼Œå¹¶ä¸”æ­¤æ–‡ä»¶ä¸æ˜¯ç›®å½•,就å‡å®šå®ƒæ˜¯
        一个 shell script (脚本)ï¼Œä¸€ä¸ªåŒ…å« shell 命令的文件。此时将孵化 (spawn)
        å‡ºä¸€ä¸ªå­    shell   æ¥æ‰§è¡Œå®ƒã€‚å­   shell   釿–°åˆå§‹åŒ–è‡ªèº«ï¼Œæ•ˆæžœå°±å¥½åƒæ˜¯
        执行了一个新的 shell æ¥å¤„ç†è„šæœ¬ä¸€æ ·ï¼Œä½†æ˜¯çˆ¶ shell  ä¿å­˜çš„命令ä½ç½®ä»ç„¶è¢«
        ä¿ç•™ (å‚è§ä¸‹é¢çš„ shell        (SHELL BUILTIN COMMANDS) 中的 hash。
 
        å¦‚æžœç¨‹åºæ˜¯ä»¥                                                         #!
        开头的文件,那么第一行的其余部分指定了这个程åºçš„解释器。          shell
        执行指定的解释器,如果æ“作系统ä¸ä¼šè‡ªè¡Œå¤„ç†è¿™ç§å¯æ‰§è¡Œæ–‡ä»¶æ ¼å¼çš„è¯ã€‚
        è§£é‡Šå™¨çš„å‚æ•°ç”±ä¸‹é¢ä¸‰éƒ¨åˆ†ç»„æˆï¼šç¨‹åºç¬¬ä¸€è¡Œä¸­è§£é‡Šå™¨å称之åŽçš„å¯é€‰çš„ä¸€ä¸ªå‚æ•°ï¼Œ
        程åºçš„åç§°ï¼Œå‘½ä»¤è¡Œå‚æ•°ï¼Œå¦‚果有的è¯ã€‚
        shell 有 execution environment (执行环境) 的概念,由下列内容组æˆï¼š
 
        o      shell  å¯åŠ¨æ—¶ç»§æ‰¿çš„æ‰“å¼€çš„æ–‡ä»¶ï¼Œä¾‹å¦‚åœ¨å†…å»ºå‘½ä»¤  exec 中使用é‡å®šå‘
               修改的结果
 
        o      当å‰å·¥ä½œç›®å½•,使用  cd,pushd  或者  popd   设置,或是由   shell
               在å¯åŠ¨æ—¶ç»§æ‰¿å¾—åˆ°
 
        o      æ–‡ä»¶åˆ›å»ºæ¨¡å¼æŽ©ç ï¼Œä½¿ç”¨ umask 设置或是从 shell 的父进程中继承得到
 
        o      当å‰é™·é˜±ï¼Œç”¨ trap 设置
 
        o      shell                 傿•°ï¼Œä½¿ç”¨å˜é‡èµ‹å€¼æˆ–者                 set
               设置,或者是从父进程的环境中继承得到
 
        o      shell 函数,在执行中定义或者是从父进程的环境中继承得到
 
        o      设为å…许的选项,在执行时设置
               (è¦ä¹ˆæ˜¯é»˜è®¤å…许的,è¦ä¹ˆæ˜¯å‘½ä»¤è¡Œç»™å‡ºçš„) 或者是 用 set 设置
 
        o      用 shopt 设为å…许的选项
 
        o      用 alias 定义的 shell 别å
 
        o      å„ç§è¿›ç¨‹å·ï¼ŒåŒ…å«åŽå°ä½œä¸šçš„进程å·ï¼Œ$$ çš„å€¼ï¼Œä»¥åŠ $PPID 的值
 
        å½“å¹¶éž  shell  函数或内置命令的简å•命令执行时,它在一个由下述内容组æˆçš„
        å•独的执行环境中å¯åŠ¨ã€‚é™¤éžå¦å¤–说明,值都是从 shell 中继承的。
 
        o      shell 打开的文件,加上对命令使用é‡å®šå‘修改和添加的文件
 
        o      当å‰å·¥ä½œç›®å½•
 
        o      æ–‡ä»¶åˆ›å»ºæ¨¡å¼æŽ©ç 
 
        o      标记为导出             (export)             的             shell
               å˜é‡ï¼Œä»¥åŠä¼ é€’到环境中为这个命令导出的å˜é‡
 
        o      shell   æ•æ‰çš„陷阱被é‡ç½®ä¸ºä»Ž   shell   的父进程中继承的值,shell
               忽略的陷阱 也被忽略
 
        在å•独的环境中å¯åŠ¨çš„å‘½ä»¤ä¸èƒ½å½±å“ shell 的执行环境。
 
        命令替æ¢å’Œå¼‚æ­¥å‘½ä»¤éƒ½åœ¨å­  shell  çŽ¯å¢ƒä¸­æ‰§è¡Œã€‚å­  shell  çŽ¯å¢ƒæ˜¯æ‚ shell
        环境的赋值,但         shell          æ•æ‰çš„陷阱被é‡ç½®ä¸º          shell
        å¯åŠ¨æ—¶ä»Žçˆ¶è¿›ç¨‹ä¸­ç»§æ‰¿çš„å€¼ã€‚     作为管é“ä¸€éƒ¨åˆ†æ¥æ‰§è¡Œçš„内建命令也在一个å­
        shell   çŽ¯å¢ƒä¸­æ‰§è¡Œã€‚å¯¹å­    shell    环境所作修改ä¸èƒ½å½±å“åˆ°æ‚    shell
        的执行环境。
 
        如果命令åŽé¢æ˜¯   &   并且没有å¯ç”¨ä½œä¸šæŽ§åˆ¶ï¼Œå‘½ä»¤çš„默认标准输入将是空文件
        /dev/null。å¦åˆ™ï¼Œè¢«æ‰§è¡Œçš„命令从调用它的   shell    中继承被é‡å®šå‘修改的
        文件æè¿°ç¬¦ã€‚
 
       (ENVIRONMENT)
        å½“ä¸€ä¸ªç¨‹åºæ‰§è¡Œæ—¶ï¼Œå®ƒè¢«èµ‹äºˆä¸€ä¸ªå­—符串数组,æˆä¸ºçŽ¯å¢ƒ        environment。
        它是一个 åç§°-值对 (name-value) çš„åˆ—è¡¨ï¼Œå½¢å¼æ˜¯ name=value.
 
        shell                           æä¾›äº†å¤šç§æ“作环境的方法。å¯åŠ¨æ—¶ï¼Œshell
        扫æè‡ªèº«çš„环境,为æ¯ä¸ªæ‰¾åˆ°  çš„åå­—åˆ›å»ºä¸€ä¸ªå‚æ•°ï¼Œè‡ªåŠ¨åœ°å°†å®ƒæ ‡è®°ä¸º export
        (å‘å­è¿›ç¨‹å¯¼å‡ºçš„)。被执行的命令继承了这个环境。  export  å’Œ  declare  -x
        命令å…è®¸å‚æ•°å’Œå‡½æ•°è¢«åŠ å…¥åˆ°çŽ¯å¢ƒä¸­æˆ–ä»ŽçŽ¯å¢ƒä¸­åˆ é™¤ã€‚å¦‚æžœçŽ¯å¢ƒä¸­å‚æ•°çš„值
        被修改,新值æˆä¸ºçŽ¯å¢ƒçš„ä¸€éƒ¨åˆ†ï¼Œæ›¿æ¢äº†æ—§å€¼ã€‚所有被执行的命令继承的环境
        åŒ…å«      shell      çš„åˆå§‹çŽ¯å¢ƒ      (å¯èƒ½å€¼è¢«ä¿®æ”¹è¿‡),å‡åŽ»è¢«     unset
        命令删除的,加上通过 export 和 declare -x 命令添加的部分。
 
        å¯ä»¥åœ¨ä»»ä½•                        simple                        command
        æˆ–å‡½æ•°çš„çŽ¯å¢ƒä¸­è®¾å®šæš‚æ—¶æœ‰æ•ˆçš„å‚æ•°ï¼Œåªè¦å°†å‚数赋值放在命令å‰é¢å°±å¯ä»¥äº†ï¼Œ
        å‚è§ä¸Šé¢ PARAMETERS çš„æè¿°ã€‚这些赋值语å¥åªåœ¨è¿™ä¸ªå‘½ä»¤çš„环境中有效。
 
        如果设置了内建命令      set       的       -k       选项,               礯
        å˜é‡èµ‹å€¼éƒ½å°†æ”¾åˆ°å‘½ä»¤çš„环境中,ä¸ä»…是在命令åå‰é¢çš„那些。
 
        当              bash             执行一个外部命令时,å˜é‡             _
        被设置为命令的文件全å,然åŽè¢«ä¼ é€’到命令的环境之中。
        从 shell çš„è§’åº¦çœ‹ï¼Œä¸€ä¸ªå‘½ä»¤é€€å‡ºçŠ¶æ€æ˜¯ 0 æ„å‘³ç€æˆåŠŸé€€å‡ºã€‚  é€€å‡ºçŠ¶æ€æ˜¯  0
        表明æˆåŠŸã€‚éžé›¶çжæ€å€¼è¡¨æ˜Žå¤±è´¥ã€‚当命令收到  fatal  signal  N 退出时,bash
        使用 128+N 作为它的退出状æ€ã€‚
 
        如果没有找到命令,为执行它而创建的å­è¿›ç¨‹è¿”回    127。如果找到了命令但是
        文件ä¸å¯æ‰§è¡Œï¼Œè¿”å›žçŠ¶æ€æ˜¯ 126。
 
        如果命令由于扩展或é‡å®šå‘错误而失败,退出状æ€å¤§äºŽé›¶ã€‚
 
        shell   内建命令如果æˆåŠŸè¿”å›ž   0(true),执行时出错则返回éžé›¶  (false)。
        所有内建命令返回 2 æ¥æŒ‡ç¤ºä¸æ­£ç¡®çš„用法。
 
        Bash             è‡ªèº«è¿”å›žæœ€åŽæ‰§è¡Œçš„命令的退出状æ€ï¼Œé™¤éžå‘生了语法错误,
        这时它返回éžé›¶å€¼ã€‚å‚è§ä¸‹é¢çš„内建命令 exit。
 
       (SIGNALS)
        如果  bash  是交互的,没有设定任何陷阱,它忽略  SIGTERM  (这样  kill  0
        ä¸ä¼šæ€æŽ‰äº¤äº’çš„  shell)。  SIGINT  被æ•èŽ·å¹¶å¤„ç†   (从而使内建命令   wait
        å¯ä»¥ä¸­æ–­)。在所有情况下,  bash  忽略  SIGQUIT。 如果正在使用作业控制,
        bash 忽略 SIGTTIN, SIGTTOU, 和 SIGTSTP.
 
        bash    开始的并行作业的信å·å¤„ç†å¥æŸ„都设置为    shell    从父进程中继承
        çš„å€¼ã€‚å¦‚æžœä¸æ˜¯æ­£åœ¨ä½¿ç”¨ä½œä¸šæŽ§åˆ¶ï¼Œå¼‚步命令还忽略  SIGINT  å’Œ  SIGQUIT 。
        作为命令替æ¢ç»“æžœè¿è¡Œçš„å‘½ä»¤å¿½ç•¥é”®ç›˜äº§ç”Ÿçš„ä½œä¸šæŽ§åˆ¶ä¿¡å· SIGTTIN,  SIGTTOU,
        和 SIGTSTP.
 
        å¦‚æžœæ”¶åˆ°ä¿¡å·    SIGHU,   shell    默认退出。在退出å‰ï¼Œäº¤äº’çš„   shell
        呿‰€æœ‰ä½œä¸šï¼Œè¿è¡Œçš„æˆ–åœæ­¢çš„,å‘é€  SIGHUP  ä¿¡å·ã€‚shell  å‘åœæ­¢çš„作业å‘出
        SIGCONT       ä¿¡å·æ¥ä¿è¯å®ƒä»¬ä¼šæ”¶åˆ°      SIGHUP.       è¦é˜»æ­¢      shell
        å‘特定的作业å‘é€ä¿¡å·ï¼Œåº”当使用内建命令   disown    将作业从作业表中删除
        (å‚è§ä¸‹é¢çš„  shell        (SHELL BUILTIN COMMANDS) 章节) 或者使用 dis-
        own -h æ¥æ ‡è®°ä¸ºä¸æŽ¥å— SIGHU。
 
        如果使用 shopt 设置了 shell 选项 huponexi,在交互的登录 shell  退出时
        bash 呿‰€æœ‰ä½œä¸šå‘出 SIGHUP ä¿¡å·ã€‚
 
        当   bash  ç­‰å¾…å‘½ä»¤æ‰§è¡Œç»“æŸæ—¶ï¼Œå¦‚果收到已设置了陷阱的信å·ï¼Œé™·é˜±  (trap)
        å°†ä¸ä¼šæ‰§è¡Œï¼Œç›´åˆ°å‘½ä»¤ç»“æŸã€‚     当      bash      通过内建命令      wait
        等待异步命令时,如果收到已设置     了陷阱的信å·ï¼Œå°†ä½¿å¾—内建命令    wait
        ç«‹å³ä»¥å¤§äºŽ 128 的状æ€å€¼è¿”回。 接ç€ï¼Œé™·é˜±å°†ç«‹å³è¢«æ‰§è¡Œã€‚
        Job    control    (作业控制)     指的是å¯ä»¥é€‰æ‹©åœæ­¢     (suspend,挂起)
        进程执行,并且               å¯ä»¥åœ¨ä¹‹åŽç»§ç»­              (resume,æ¢å¤)
        执行的能力。用户一般在交互的人机界é¢
        中使用这ç§åŠŸèƒ½ã€‚ç•Œé¢æ˜¯ç”±ç³»ç»Ÿçš„终端驱动和 bash å…±åŒæä¾›çš„ã€‚
 
        shell                  å°†æ¯ä¸ªç®¡é“分é…给一个                         (job)_
        它ä¿å­˜ä¸€ä¸ªå½“å‰è¿è¡Œçš„作业表,å¯ä»¥ç”¨     jobs     命令æ¥åˆ—出。当     bash
        å¯åŠ¨ä¸€ä¸ªå¼‚æ­¥çš„ä½œä¸šæ—¶ (backgroun                  )它输出这样的一行:
 
               [1] 25647
 
        è¡¨æ˜Žè¿™ä¸ªä½œä¸šçš„ä½œä¸šå·æ˜¯  1,与作业相关连的管é“中最åŽä¸€ä¸ªè¿›ç¨‹çš„  è¿›ç¨‹ID是
        15647。管é“中所有进程都是åŒä¸€ä¸ªä½œä¸šçš„æˆå‘˜ã€‚   Bash    使用            (job)
        概念作为作业控制的基础。
 
        为简化作业控制的用户界é¢çš„实现,æ“作系统负责管ç†â€œå½“å‰ç»ˆç«¯çš„进程组â€
        (current terminal process group ID) 的概念。这个进程组的æˆå‘˜ (进程组 ID
        是当å‰ç»ˆç«¯è¿›ç¨‹ç»„   ID   的进程)   å¯ä»¥æ”¶åˆ°é”®ç›˜äº§ç”Ÿçš„ä¿¡å·ï¼Œä¾‹å¦‚  SIGINT.
        这些进程被称为      foreground(å‰å°çš„)。      Background       (            )
        进程是那些进程组  ID 与终端ä¸åŒçš„进程;这些进程ä¸ä¼šæ”¶åˆ°é”®ç›˜äº§ç”Ÿçš„ä¿¡å·ã€‚
        åªæœ‰å‰å°è¿›ç¨‹å¯ä»¥ä»Žç»ˆç«¯è¯»æˆ–å‘终端写。åŽå°è¿›ç¨‹è¯•图读/写终端时,将收到终端驱动程åºå‘é€çš„
        SIGTTIN (SIGTTOU) ä¿¡å·ã€‚这个信å·å¦‚æžœæ²¡æœ‰åŠ ä»¥æ•æ‰ï¼Œå°†æŒ‚起这个进程。
 
        如果         bash         è¿è¡Œå…¶ä¸Šçš„æ“ä½œç³»ç»Ÿæ”¯æŒä½œä¸šæŽ§åˆ¶ï¼Œ         bash
        会包å«ä½¿ç”¨å®ƒçš„设施。在一个进程正在è¿è¡Œçš„æ—¶å€™é”®å…¥  suspend       芲  字符
        (通常是   ^Z,  Control-Z)  将使这个进程暂åœï¼Œå°†æŽ§åˆ¶æƒè¿˜ç»™  bash.   输入
        delayed   suspend   ,               芲  字符    (通常是    ^Y,    Control-Y)
        将使这个进程在试图从终端读å–输入时暂åœï¼Œå°†æŽ§åˆ¶æƒè¿˜ç»™              bash.
        用户接下æ¥å¯ä»¥æŽ§åˆ¶æ­¤ä½œä¸šçš„状æ€ï¼Œä½¿ç”¨  bg  命令使它在åŽå°ç»§ç»­è¿è¡Œï¼Œ   fg
        命令使它在å‰å°ç»§ç»­è¿è¡Œï¼Œæˆ–             kill            å‘½ä»¤å°†å®ƒæ€æ­»ã€‚^Z
        会立å³èµ·ä½œç”¨ï¼Œå¹¶ä¸”还有使等待中的                              (pending)
        输出和输入被忽略的附加副作用。
 
        æœ‰å¾ˆå¤šæ–¹æ³•æ¥æŒ‡ä»£   shell   中的作业。字符  %  å¯ä»¥å¼•入作业å。编å·ä¸º  n
        的作业å¯ä»¥ç”¨                                                         %n
        çš„å½¢å¼æ¥æŒ‡ä»£ã€‚作业也å¯ä»¥ç”¨å¯åŠ¨å®ƒçš„åç§°çš„å‰ç¼€ï¼Œæˆ–者命令行中的å­å­—ç¬¦ä¸²æ¥æŒ‡ä»£ã€‚例如,
        %ce    指代一个暂åœçš„    ce    作业。如果å‰ç¼€åŒ¹é…多于一个作业,    bash
        报错。å¦ä¸€æ–¹é¢ï¼Œä½¿ç”¨     %?ce,     å¯ä»¥æŒ‡ä»£ä»»ä½•命令行中包å«å­—符串    ce
        的作业。如果å­å­—符串匹é…多于一个作业, bash æŠ¥é”™ã€‚ç¬¦å· %%  å’Œ  %+  指代
        shell            æ„义上的            current            job,当å‰ä½œä¸šï¼Œ
        也就是å‰å°è¢«æš‚åœçš„æœ€åŽä¸€ä¸ªä½œä¸šï¼Œæˆ–者是在åŽå°å¯åŠ¨çš„ä½œä¸šã€‚  previous  job
                         å¯ä»¥ä½¿ç”¨ %- æ¥æŒ‡ä»£ã€‚在有关作业的输出信æ¯ä¸­ (例如,命令 jobs
        的输出),当å‰ä½œä¸šæ€»æ˜¯è¢«æ ‡è®°ä¸º +, å‰ä¸€ä½œä¸šæ ‡è®°ä¸º -.
 
        简å•地给出作业å,å¯ä»¥ç”¨æ¥æŠŠå®ƒæ”¾åˆ°å‰å°ï¼š    %1     是     ``fg     %1''
        çš„åŒä¹‰è¯ï¼Œå°†ä½œä¸š  1  从åŽå°æ”¾åˆ°å‰å°ã€‚类似的,  ``%1  &'' 在åŽå°æ¢å¤ä½œä¸š
        1,与 ``bg %1'' 等价。
 
        当æŸä¸ªä½œä¸šæ”¹å˜çŠ¶æ€æ—¶ï¼Œshell          ç«‹å³å¯ä»¥å¾—知。通常,          bash
        等待直到è¦è¾“出一个æç¤ºç¬¦æ—¶ï¼Œæ‰ä¼šæŠ¥å‘Šä½œä¸šçš„状æ€å˜åŒ–,从而ä¸ä¼šæ‰“断其他输出。
        如果å¯ç”¨äº†å†…建命令 set çš„ -b 选项, bash å°†ç«‹å³æŠ¥å‘Šè¿™äº›å˜åŒ–。对 SIGCHLD
        ä¿¡å·çš„陷阱将在æ¯ä¸ªå­è¿›ç¨‹é€€å‡ºæ—¶æ‰§è¡Œã€‚
 
        å¦‚æžœåœ¨ä½œä¸šæš‚åœæ—¶è¯•图退出   bas,  shell  打å°ä¸€æ¡è­¦å‘Šæ¶ˆæ¯ã€‚命令  jobs
        å¯èƒ½è¢«ç”¨æ¥æ£€æŸ¥ä½œä¸šçš„状æ€ã€‚å¦‚æžœå†æ¬¡è¯•图退出,中间没有其他命令,shell
        ä¸ä¼šæ‰“å° å…¶ä»–è­¦å‘Šï¼Œæš‚åœçš„作业将终止。
 
           (PROMPTING)
        在交互执行时,     bash     在准备好读入一æ¡å‘½ä»¤æ—¶æ˜¾ç¤ºä¸»æç¤ºç¬¦    PS,
        åœ¨éœ€è¦æ›´å¤šçš„输入æ¥å®Œæˆä¸€æ¡å‘½ä»¤æ—¶æ˜¾ç¤º             PS。            Bash
        å…许通过æ’å…¥ä¸€äº›åæ–œæ è½¬ä¹‰çš„特殊字符æ¥å®šåˆ¶è¿™äº›æç¤ºå­—符串,这些字符被如下解释:
               \a     一个 ASCII å“铃字符 (07)
               \d     æ—¥æœŸï¼Œæ ¼å¼æ˜¯ "星期 月份 æ—¥" (例如,"Tue May 26")
               \D{format}
                      format  被传递给  strftime(3),结果被æ’入到æç¤ºå­—符串中;
                      空的 format 将使用语言环境特定的时间格å¼ã€‚èŠ±æ‹¬å·æ˜¯å¿…需的
               \e     一个 ASCII 转义字符 (033)
               \h     主机å,第一个 `.' 之å‰çš„部分
               \H     主机å
               \j     shell 当å‰ç®¡ç†çš„作业数é‡
               \l     shell 的终端设备å的基本部分
               \n     新行符
               \r     回车
               \s     shell çš„å称, $0 的基本部分 (最åŽä¸€ä¸ªæ–œæ åŽé¢çš„部分)
               \t     当剿—¶é—´ï¼Œé‡‡ç”¨ 24å°æ—¶åˆ¶çš„ HH:MM:SS æ ¼å¼
               \T     当剿—¶é—´ï¼Œé‡‡ç”¨ 12å°æ—¶åˆ¶çš„ HH:MM:SS æ ¼å¼
               \@     当剿—¶é—´ï¼Œé‡‡ç”¨ 12å°æ—¶åˆ¶ä¸Šåˆ/ä¸‹åˆ (am/pm) æ ¼å¼
               \A     当剿—¶é—´ï¼Œé‡‡ç”¨ 24å°æ—¶åˆ¶ä¸Šåˆ/ä¸‹åˆæ ¼å¼
               \u     当å‰ç”¨æˆ·çš„用户å the username of the current user
               \v     bash 的版本 (例如,2.00)
               \V     bash çš„å‘行编å·ï¼Œç‰ˆæœ¬å·åŠ è¡¥ä¸çº§åˆ« (例如,2.00.0)
               \w     当å‰å·¥ä½œç›®å½•
               \W     当å‰å·¥ä½œç›®å½•的基本部分
               \!     此命令的历å²ç¼–å·
               \#     此命令的命令编å·
               \$     如果有效 UID 是 0,就是 #, 其他情况下是 $
               \nnn   对应八进制数 nnn 的字符
               \\     ä¸€ä¸ªåæ–œæ 
               \[     一个ä¸å¯æ‰“å°å­—符åºåˆ—的开始,å¯ä»¥ç”¨äºŽåœ¨æç¤ºç¬¦ä¸­åµŒå…¥ç»ˆç«¯æŽ§åˆ¶åºåˆ—
               \]     一个ä¸å¯æ‰“å°å­—符åºåˆ—的结æŸ
 
        命令编å·å’Œåކå²ç¼–å·é€šå¸¸æ˜¯ä¸åŒçš„:历å²ç¼–å·æ˜¯å‘½ä»¤åœ¨åކå²åˆ—表中的ä½ç½®ï¼Œå¯èƒ½
        包å«ä»Žåކ岿–‡ä»¶ä¸­æ¢å¤çš„命令        (å‚è§ä¸‹é¢çš„        HISTORY          
        章节)ï¼Œè€Œå‘½ä»¤ç¼–å·æ˜¯å½“å‰   shell    会è¯ä¸­æ‰§è¡Œçš„命令åºåˆ—中,命令的ä½ç½®ã€‚
        字符串被解ç ä¹‹åŽï¼Œå®ƒå°†è¿›è¡Œæ‰©å±•,è¦ç«Ÿ parameter expansion, command sub-
        stitution, arithmetic expansion å’Œ quote removal, 最åŽè¦ç«Ÿ shell  选项
        promptvars  å¤„ç†  (å‚è§ä¸‹é¢çš„  shell         (SHELL  BUILTIN COMMANDS)
        章节中,对命令 shopt çš„æè¿°)。
 
 readlin  (READLINE)
        这是在交互   shell   中处ç†è¯»å–输入的库,除éžåœ¨   shell    å¯åŠ¨æ—¶ç»™å‡ºäº†
        --noediting           选项。默认情况下,行编济罾嗨朴           emacs
        中的那些。也å¯ä»¥ä½¿ç”¨ vi æ ·å¼çš„行编冀缑妗 è¦åœ¨ shell è¿è¡Œä¹‹åŽå…³é—­è¡Œç¼–-
        ,使用内置命令  set  çš„  +o  emacs  或  +o  vi  选项  (å‚è§ä¸‹é¢çš„ shell
               (SHELL BUILTIN COMMANDS) 章节)。
 
    Readline Notation
        在这个å°èŠ‚ä¸­ï¼Œå°†ä½¿ç”¨ emacs  æ ·å¼çš„记法æ¥è¡¨è¿°æŒ‰é”®ã€‚Ctrl  键记为  C-key,
        例如,C-n  æ„æ€æ˜¯  Ctrl-N。类似的,  meta 键记为 M-key,因此 M-x æ„味ç€
        Meta-x。(在没有 meta 键的键盘上,M-x æ„æ€æ˜¯  ESC-x,也就是说,按下  Esc
        é”®ï¼Œç„¶åŽæŒ‰  x  键。这使得  Esc  æˆä¸º  meta  prefix。M-C-x  çš„ç»„åˆæ„æ€æ˜¯
        Esc-Ctrl-x, 也就是按 Esc é”®ï¼Œç„¶åŽæŒ‰ä½ Ctrl é”®ï¼ŒåŒæ—¶æŒ‰ x 键。)
 
        readline               命令å¯ä»¥æœ‰æ•°å­—çš„                     (arguments),
        一般作为é‡å¤çš„计数。有些时候,它是é‡è¦å‚数的标记。给å‘剿–¹è¿›è¡Œçš„命令
        (例如,kill-line)                ä¼ é€’è´Ÿæ•°å‚æ•°ï¼Œå°†ä½¿å¾—命令å‘åæ–¹å‘进行。
        下é¢çš„命令如果接å—傿•°æ—¶çš„行为与此ä¸åŒï¼Œå°†å¦è¡Œè¯´æ˜Žã€‚
 
        当命令被æè¿°ä¸ºå‰ªåˆ‡  (killing)  文本时,被删除的文本被ä¿å­˜ï¼Œç­‰å¾…å°†æ¥ä½¿ç”¨
        (粘贴,yanking)。被剪切的文本ä¿å­˜åœ¨   kill   ring    中。连续的剪切使得
        æ–‡æœ¬è¢«ä¾æ¬¡åŠ å…¥åˆ°ä¸€ä¸ªå•元中,å¯ä»¥ä¸€æ¬¡è¢«ç²˜è´´ã€‚ä¸å‰ªåˆ‡æ–‡æœ¬çš„命令将     kill
        ring 中的文本分离。
 
    Readline Initialization        化
        readline   å¯ä»¥é€šè¿‡å°†å‘½ä»¤æ”¾å…¥åˆå§‹åŒ–文件   (inputrc    文件)    æ¥å®šåˆ¶ã€‚
        文件å从å˜é‡  INPUTRC 的值中获å–。如果没有设置这个å˜é‡ï¼Œé»˜è®¤æ˜¯ ~/.inpu-
        trc.                           当使用                          readline
        库的程åºå¯åŠ¨æ—¶ï¼Œå°†è¯»å–åˆå§‹åŒ–文件,按键关è”å’Œå˜é‡å°†è¢«è®¾ç½®ã€‚     readline
        åˆå§‹åŒ–文件中åªå…许有很少的基本构造。          空行被忽略。以          #
        开始的行是注释。以            $            开始的行指示了有æ¡ä»¶çš„æž„造。
        其他行表示按键关è”å’Œå˜é‡è®¾ç½®ã€‚
 
        默认的按键关è”å¯ä»¥ä½¿ç”¨                                          inputrc
        文件改å˜ã€‚其他使用这个库的程åºå¯ä»¥æ·»åŠ å®ƒä»¬è‡ªå·±çš„å‘½ä»¤å’Œå…³è”。
 
        例如,将
 
               M-Control-u: universal-argument
        或
               C-Meta-u: universal-argument
        放入 inputrc 将使得 M-C-u 执行 readline 命令 universal-argument.
 
        å¯ä»¥è¯†åˆ«ä¸‹åˆ—字符的符å·å称:  RUBOUT,  DEL,  ESC,  LFD,  NEWLINE,  RET,
        RETURN, SPC, SPACE, 和 TAB.
 
        在命令å之外,readline
        å…许将按键与一个字符串关è”,当按下这个键时,将æ’入这个字符串
        (一个å®ï¼Œmacro)。
 
    Readline Key Bindings
        inputrc
        文件中的控制按键关è”的语法éžå¸¸ç®€å•。需è¦çš„å†…å®¹æ˜¯å‘½ä»¤åæˆ–å®ï¼Œä»¥åŠå®ƒåº”当关è”到的按键åºåˆ—。
        åç§°å¯ä»¥ä»¥ä¸¤ç§æ–¹å¼æŒ‡å®šï¼šä¸€ä¸ªæŒ‰é”®çš„符å·å称,å¯èƒ½å¸¦æœ‰ Meta- 或  Control-
        å‰ç¼€ï¼Œæˆ–者是一个按键åºåˆ—。
 
        当使用     keyname:function-name     或    macro    形弿—¶ï¼Œ    keyname
        是按键以英文拼写的å称。例如:
 
               Control-u: universal-argument
               Meta-Rubout: backward-kill-word
               Control-o: "> output"
 
        在上述例å­ä¸­ï¼Œ C-u 被关è”到函数 universal-argument, M-DEL  被关è”到函数
        backward-kill-word,        而        C-o       被关è”为è¿è¡Œå³è¾¹ç»™å‡ºçš„å®
        (æ„æ€æ˜¯ï¼Œå°†å‘行中æ’å…¥ ``> output'' )。
 
        在第二ç§å½¢å¼ä¸­ï¼Œ"keyseq":function-name 或 macro,  keyseq  ä¸åŒäºŽä¸Šé¢çš„
        keynam,
        表示整个按键åºåˆ—的字符串å¯ä»¥é€šè¿‡å°†æŒ‰é”®åºåˆ—放在åŒå¼•å·å¼•ç”¨ä¸­æ¥æŒ‡å®šã€‚
        å¯ä»¥ä½¿ç”¨ä¸€äº›                          GNU                         Emacs
        æ ·å¼çš„æŒ‰é”®åºåˆ—,如下例所示,但是ä¸ä¼šè¯†åˆ«æŒ‰é”®çš„符å·å称。
 
               "\C-u": universal-argument
               "\C-x\C-r": re-read-init-file
               "\e[11~": "Function Key 1"
 
        在上述例å­ä¸­ï¼Œ  C-u  被åˆä¸€æ¬¡å…³è”到函数  universal-argument.   C-x  C-r
        被关è”到函数 re-read-init-file, 而 ESC [ 1 1 ~ 被关è”为æ’入文本 ``Func-
        tion Key 1''.
 
        GNU Emacs æ ·å¼çš„转义åºåˆ—的全集为:
               \C-    Ctrl å‰ç¼€
               \M-    Meta å‰ç¼€
               \e     一个 Esc 字符
               \\     åæ–œæ 
               \"     å­—é¢ä¸Šçš„ "
               \'     å­—é¢ä¸Šçš„ '
 
        除了 GNU Emacs æ ·å¼çš„转义åºåˆ—ï¼Œè¿˜æœ‰ä¸€ç³»åˆ—åæ–œæ è½¬ä¹‰åºåˆ—å¯ç”¨ï¼š
               \a     å“铃
               \b     回退
               \d     删除
               \f     进纸
               \n     新行符
               \r     回车
               \t     水平跳格
               \v     竖直跳格
               \nnn   一个八比特字符,它的值是八进制值                      nnn
                      (一到三个八进制数字)。
               \xHH   一个八比特字符,它的值是å六进制值                     HH
                      (一到两个å六进制数字)。
 
        输入å®çš„æ–‡æœ¬æ—¶ï¼Œå¿…须使用å•引巿ˆ–åŒå¼•å·å¼•用æ¥è¡¨æ˜Žæ˜¯å®çš„定义。
        没有引用的文本被当作函数å。在å®çš„å®šä¹‰ä½“ä¸­ï¼Œä¸Šè¿°åæ–œæ è½¬ä¹‰è¢«æ‰©å±•。
        åæ–œæ å°†å¼•ç”¨å®æ–‡æœ¬ä¸­æ‰€æœ‰å…¶ä»–字符,包括 " å’Œ '。
 
        Bash     å…许使用内建命令      bind      æ¥æ˜¾ç¤ºå’Œä¿®æ”¹å½“å‰      readline
        按键关è”。在交互使用中å¯ä»¥ç”¨å†…建命令   set   çš„   -o  选项切æ¢åˆ°ç¼–寄J
        (å‚è§ä¸‹é¢çš„ shell        (SHELL BUILTIN COMMANDS) 章节)。
 
    Readline Variables
        readline       包å«é¢å¤–çš„å¯ç”¨äºŽå®šåˆ¶å®ƒçš„行为的å˜é‡ã€‚å¯ä»¥åœ¨       inputrc
        文件中设置å˜é‡ï¼Œä½¿ç”¨å¦‚下形å¼çš„语å¥ï¼š
 
               set variable-name value
 
        除éžå¦å¤–说明,readline å˜é‡çš„值总是 On 或 Of。å˜é‡å’Œå®ƒä»¬çš„默认值是:
 
        bell-style (audible)
               控制了当   readline   需è¦é¸£ç»ˆç«¯å“铃时的动作。如果设置为  none,
               readline         ä¸ä¼šé¸£é“ƒã€‚如果设置为          visible,readline
               使用å¯è§†çš„å“铃,如果å¯ç”¨çš„è¯ã€‚    如果设置为   audible,readline
               试ç€é¸£ç»ˆç«¯å“铃。
        comment-begin (``#'')
               这个字符串在执行       readline       命令        insert-comment
               时被æ’入。这个命令在  emacs  模å¼ä¸‹è¢«å…³è”为 M-,在 vi 模å¼ä¸‹æ˜¯
               。
        completion-ignore-case (Off)
               如果设置为 On,readline 进行大å°å†™ä¸æ•感的文件å匹é…和补全。
        completion-query-items (100)
               这个å˜é‡å†³å®šç€ä½•æ—¶å‘ç”¨æˆ·è¯¢é—®ï¼Œæ˜¯å¦æŸ¥çœ‹ç”±å‘½ä»¤    possible-comple-
               tions    产生的å¯èƒ½çš„补全数é‡ã€‚    它å¯ä»¥è®¾ä¸ºä»»ä½•大于或等于    0
               的值。如果å¯èƒ½çš„补全数é‡å¤§äºŽæˆ–等于这个å˜é‡çš„值,
               用户将被æç¤ºæ˜¯å¦æ„¿æ„查看它们;å¦åˆ™å°†ç›´æŽ¥åœ¨ç»ˆç«¯ä¸Šåˆ—出它们。
        convert-meta (On)
               如果设置为   On,readline   将把设置了最高ä½çš„字符转æ¢ä¸º   ASCII
               按键åºåˆ—,方法是 去掉第八ä½ï¼Œå‰ç¼€ä¸€ä¸ªè½¬ä¹‰å­—符 (实际上,使用  Esc
               作为转义符 meta prefix)。
        disable-completion (Off)
               如果设置为                                          On,readline
               å°†ç¦æ­¢è¯çš„补全。补全字符将被æ’入到行中,就好åƒå®ƒä»¬è¢«      映射为
               self-insert。
        editing-mode (emacs)
               控制 readline 的按键关è”集åˆä¸Ž emacs 还是 vi 相似。 editing-mode
               å¯ä»¥è®¾ç½®ä¸º emacs 或 v。
        enable-keypad (Off)
               如果设置为    On     ,readline     在调用时将试图å¯ç”¨è¾…助键盘。
               一些系统需è¦è®¾ç½®è¿™ä¸ªæ¥å¯ç”¨æ–¹å‘键。
        expand-tilde (Off)
               如果设置为 On,readline 试图进行è¯çš„补全时会进行波浪线扩展。
        history-preserve-point
               如果设置为  On,历å²ä»£ç è¯•ç€åœ¨  previous-history 或 next-history
               å–回的æ¯ä¸ªåކå²è¡Œçš„相åŒä½ç½®ä¸­åŠ ç‚¹ã€‚
        horizontal-scroll-mode (Off)
               如果设置为                  On,将使得                  readline
               使用å•è¡Œæ¥æ˜¾ç¤ºï¼Œå¦‚果它比å±å¹•宽度è¦é•¿ï¼Œå°±åœ¨
               å•一的å±å¹•è¡Œä¸Šæ°´å¹³æ»šåŠ¨è¾“å…¥è¡Œï¼Œè€Œä¸æ˜¯è‡ªåŠ¨å›žç»•åˆ°æ–°è¡Œã€‚
        input-meta (Off)
               如果设置为             On,readline             å°†å…许八比特输入
               (也就是说,它ä¸ä¼šå°†å®ƒè¯»å…¥çš„字符中最高ä½åˆ é™¤),
               ä¸ç®¡å®ƒèƒ½æ”¯æŒä»€ä¹ˆæ ·çš„ç»ˆç«¯è¦æ±‚。åç§° meta-flag 与此å˜é‡åŒä¹‰ã€‚
        isearch-terminators (``C-[C-J'')
               用于终止增é‡çš„æœç´¢ï¼Œä¸å†å°†å­—符当作命令执行的字符串。
               如果这个å˜é‡æ²¡æœ‰èµ‹å€¼ï¼Œå­—符串 Esc å’Œ C-J 将终止增é‡çš„æœç´¢ã€‚
        keymap (emacs)
               è®¾ç½®å½“å‰    readline    键盘映射。有效的键盘映射å称是    emacs,
               emacs-standard,  emacs-meta,  emacs-ctlx,  vi,  vi-command,还有
               vi-insert_vi  等价于  vi-command;  emacs  等价于  emacs-stan-
               dard。默认值是 emacs; editing-mode 的值也会影å“默认的键盘映射。
        mark-directories (On)
               如果设置为 On,补全的目录å会添加一个斜æ ã€‚
        mark-modified-lines (Off)
               如果设置为 On,已被修改的历å²è¡Œå°†æ˜¾ç¤ºä¸ºå‰ç¼€ä¸€ä¸ªæ˜Ÿå· (*)。
        mark-symlinked-directories (Off)
               如果设置为
               On,补全的å称如果是到目录的符å·é“¾æŽ¥ï¼Œåˆ™å°†æ·»åŠ ä¸€ä¸ªæ–œæ        (与
               mark-directories çš„å€¼åŒæ ·å¤„ç†)。
        match-hidden-files (On)
               这个å˜é‡ï¼Œå¦‚果设置为             On,将使得             readline
               在进行文件å补全时,匹é…以     `.'    开头的文件    (éšè—文件),
               除éžç”¨æˆ·åœ¨è¦è¡¥å…¨çš„æ–‡ä»¶å中给出了å‰å¯¼çš„ `.'。
        output-meta (Off)
               如果设置为                                          On,readline
               将直接显示设置了第八ä½çš„å­—ç¬¦ï¼Œè€Œä¸æ˜¯è½¬åŒ–为一个带            meta
               å‰ç¼€çš„转义åºåˆ—。
        page-completions (On)
               如果设置为  On,readline  将使用内建的类似   more   的分页程åºï¼Œ
               æ¥æ¯æ¬¡æ˜¾ç¤ºä¸€å±å¯èƒ½çš„补全。
        print-completions-horizontally (Off)
               如果设置为                                          On,readline
               将匹é…的补全按字æ¯è¡¨é¡ºåºæŽ’åºï¼Œç„¶åŽæ°´å¹³æŽ’列显示出æ¥ï¼Œ
               è€Œä¸æ˜¯åœ¨å±å¹•上竖直排列显示。
        show-all-if-ambiguous (Off)
               这将调整补全函数的默认行为。如果设置为                       on,
               拥有多于一个å¯èƒ½çš„补全的è¯å°†ç«‹å³åˆ—出所有匹é…ï¼Œè€Œä¸æ˜¯é¸£å“铃。
        visible-stats (Off)
               如果设置为
               On,在列出å¯èƒ½çš„补全时,将在文件ååŽé¢æ·»åŠ ä¸€ä¸ªè¡¨ç¤ºæ–‡ä»¶ç±»åž‹çš„å­—ç¬¦ï¼Œ
               文件类型由 stat(2) 报告。
 
    Readline Conditional Constructs
        readline  实现了一ç§åŠŸèƒ½ï¼Œæœ¬è´¨ä¸Šä¸Ž  C  预处ç†å™¨è¿›è¡Œæ¡ä»¶ç¼–译的功能类似,
        å…è®¸æ ¹æ®æµ‹è¯•的结果进行键盘关è”å’Œå˜é‡è®¾ç½®ã€‚其中使用了四ç§è§£é‡Šå™¨æŒ‡ä»¤ã€‚
 
        $if    $if      结构å…许根æ®ç¼–寄J剑谑褂玫闹斩è€è¤‚      readline
               çš„åº”ç”¨ç¨‹åºæ¥è®¾å®šæŒ‰é”®å…³è”。
               测试的文本包括一行,直到行尾;ä¸å¿…用字符æ¥éš”离它。
 
               mode   $if 结构的 mode= å½¢å¼ç”¨äºŽæµ‹è¯• readline 处于 emacs 还是 vi
                      模å¼ã€‚  è¿™å¯ä»¥ä¸Žå‘½ä»¤  set   keymap   结åˆä½¿ç”¨ï¼Œä¾‹å¦‚,设置
                      emacs-standard  和  emacs-ctlx 键盘映射,仅当 readline 以
                      emacs 模å¼å¯åŠ¨ã€‚
 
               term   term=
                      å½¢å¼ç”¨äºŽåŒ…å«ä¸Žç»ˆç«¯ç›¸å…³çš„æŒ‰é”®å…³è”,也许是将按键åºåˆ—输出与终端的功能键相关è”。
                      ç­‰å·     =     å³è¾¹çš„è¯è¢«åŒç»ˆç«¯çš„å…¨åå’Œå称中第一个     -
                      å‰é¢çš„一部分相比较。   例如,å…许  sun  åŒæ—¶åŒ¹é…  sun  å’Œ
                      sun-cmd_
 
               application
                      application      结构用于包å«åº”用程åºç›¸å…³çš„设置。æ¯ä¸ªä½¿ç”¨
                      readline       的程åºéƒ½è®¾ç½®       application      name,
                      åˆå§‹åŒ–文件å¯ä»¥æµ‹è¯•它的值。它å¯ç”¨äºŽå°†ä¸€ä¸ªæŒ‰é”®åºåˆ—ä¸Žå¯¹ç‰¹å®šçš„ç¨‹åºæœ‰ç”¨çš„功能相关è”。
                      例如,下列命令添加了一个按键åºåˆ—,用以引用           bash
                      中当å‰çš„è¯æˆ–å‰ä¸€ä¸ªè¯
 
                      $if Bash
                      # Quote the current or previous word
                      "\C-xq": "\eb\"\ef\""
                      $endif
 
        $endif 上例中的这个命令,结æŸäº†ä¸€ä¸ª $if 命令。
 
        $else  如果测试失败,$if 指令中这个分支的命令将被执行。
 
        $include
               这个指令使用å•个文件åä½œä¸ºå‚æ•°ï¼Œä»Žæ–‡ä»¶ä¸­è¯»å–命令和按键关è”。例如,下列指令
               å°†è¯»å– /etc/inputrc:
 
               $include  /etc/inputrc
 
    Searching
        readline   æä¾›äº†ä»Žå‘½ä»¤åކå²ä¸­æœç´¢åŒ…å«ç»™å®šå­—符串的行的命令   (å‚è§ä¸‹é¢çš„
        HISTORY    章节)ã€‚æœ‰ä¸¤ç§æœç´¢æ¨¡å¼ï¼š incremental å’Œ non-incremental.
 
        增é‡çš„æœç´¢åœ¨ç”¨æˆ·ç»“æŸè¾“å…¥æœç´¢å­—符串时开始。在æœç´¢å­—符串的æ¯ä¸ªå­—ç¬¦è¢«è¾“å…¥çš„åŒæ—¶ï¼Œ
        readline                     显示与已输入的字符串匹é…çš„ä¸‹ä¸€ä¸ªåŽ†å²æ¡ç›®ã€‚
        增é‡çš„æœç´¢åªè¦æ±‚è¾“å…¥èƒ½æ‰¾åˆ°æœŸæœ›çš„åŽ†å²æ¡ç›®æ‰€éœ€çš„那么多字符。 isearch-ter-
        minators                       å˜é‡ä¸­çš„字符用æ¥ç»ˆæ­¢ä¸€æ¬¡å¢žé‡çš„æœç´¢ã€‚å¦‚æžœ
        这个å˜é‡æ²¡æœ‰è¢«èµ‹å€¼ï¼ŒEsc å’Œ Ctrl-J  字符串将结æŸä¸€æ¬¡å¢žé‡çš„æœç´¢ã€‚  Ctrl-G
        将喿¶ˆä¸€æ¬¡å¢žé‡çš„æœç´¢ï¼Œæ¢å¤åˆå§‹çš„行。当æœç´¢ç»ˆæ­¢æ—¶ï¼ŒåŒ…嫿œç´¢å­—符串
        çš„åŽ†å²æ¡ç›®æˆä¸ºå½“å‰è¡Œã€‚
 
        è¦ä»Žåކå²åˆ—表中找到其他匹é…çš„æ¡ç›®ï¼Œé€‚当地键入   Ctrl-S    或    Ctrl-R。
        这样将在历å²ä¸­å‘å‰/å‘åŽæœç´¢ä¸‹ä¸€ä¸ªåŒ¹é…已输入的æœç´¢å­—符串的æ¡ç›®ã€‚
        å…¶ä»–å…³è”到æŸä¸ª   readline    命令的按键åºåˆ—将终止æœç´¢å¹¶æ‰§è¡Œå…³è”的命令。
        例如,newline 将终止æœç´¢ï¼ŒæŽ¥å—当å‰è¡Œï¼Œä»Žè€Œæ‰§è¡Œåކå²åˆ—表中的命令。
 
        readline   å¯ä»¥è®°ä½ä¸Šæ¬¡å¢žé‡æœç´¢çš„字符串。如果键入两次  Ctrl-R,中间没有
        输入任何字符æ¥å®šä¹‰ä¸€ä¸ªæ–°çš„æœç´¢å­—ç¬¦ä¸²ï¼Œé‚£ä¹ˆå°†ä½¿ç”¨å·²è®°ä½çš„æœç´¢å­—ç¬¦ä¸²ã€‚
 
        éžå¢žé‡çš„æœç´¢å°†æ•´ä¸ªæœç´¢å­—ç¬¦ä¸²è¯»å…¥ï¼Œç„¶åŽæ‰å¼€å§‹æœç´¢åŒ¹é…çš„åŽ†å²æ¡ç›®ã€‚
        æœç´¢å­—符串å¯ä»¥ç”±ç”¨æˆ·è¾“入,或者是当å‰è¡Œçš„内容的一部分。
 
    Readline Command Names
        下é¢åˆ—出的是命令的å称以åŠé»˜è®¤æƒ…况下它们关è”的按键åºåˆ—。
        命令å称如果没有对应的按键åºåˆ—,那么默认是没有关è”的。在下列æè¿°ä¸­ï¼Œ 点
        (point)      指当å‰å…‰æ ‡ä½ç½®ï¼Œæ ‡è®°      (mark)      指命令      set-mark
        ä¿å­˜çš„光标ä½ç½®ã€‚point å’Œ mark 之间的文本被称为范围 (region)。
 
    Commands for Moving    动
        beginning-of-line (C-a)
               移动到当å‰è¡Œçš„开始。
        end-of-line (C-e)
               移动到当å‰è¡Œçš„结尾。
        forward-char (C-f)
               å‘å‰ç§»åŠ¨ä¸€å­—ã€‚
        backward-char (C-b)
               å‘åŽç§»åŠ¨ä¸€å­—ã€‚
        forward-word (M-f)
               å‘å‰ç§»åŠ¨åˆ°ä¸‹ä¸€è¯å°¾ã€‚è¯ç”±å­—符 (å­—æ¯å’Œæ•°å­—) 组æˆã€‚
        backward-word (M-b)
               å‘åŽç§»åŠ¨åˆ°å½“å‰æˆ–上一è¯é¦–。
        clear-screen (C-l)
               清除å±å¹•,ä¿ç•™å½“å‰è¡Œåœ¨å±å¹•é¡¶ç«¯ã€‚æœ‰å‚æ•°æ—¶ï¼Œåˆ·æ–°å½“å‰è¡Œï¼Œä¸æ¸…å±ã€‚
        redraw-current-line
               刷新当å‰è¡Œã€‚
 
    Commands for Manipulating the History                
        accept-line (Newline, Return)
               接å—这一行,ä¸ç®¡å…‰æ ‡åœ¨ä»€ä¹ˆä½ç½®ã€‚如果行éžç©ºï¼Œå°†æ ¹æ®å˜é‡  HISTCON-
               TROL
               的状æ€åŠ å…¥åˆ°åŽ†å²åˆ—表中。如果行是修改过的历å²è¡Œï¼Œå°†æ¢å¤è¯¥åކå²è¡Œåˆ°åˆå§‹çжæ€ã€‚
        previous-history (C-p)
               从历å²åˆ—表中å–å¾—å‰ä¸€ä¸ªå‘½ä»¤ï¼Œä»Žåˆ—表中å‘åŽç§»åŠ¨ã€‚
        next-history (C-n)
               从历å²åˆ—表中å–å¾—åŽä¸€ä¸ªå‘½ä»¤ï¼Œä»Žåˆ—表中å‘å‰ç§»åŠ¨ã€‚
        beginning-of-history (M-<)
               移动到历å²ä¸­çš„第一行。
        end-of-history (M->)
               移动到输入历å²è¡Œçš„æœ«å°¾ï¼Œä¹Ÿå°±æ˜¯å½“å‰è¾“入的行的末尾。
        reverse-search-history (C-r)
               从当å‰è¡Œå¼€å§‹å‘åŽæœç´¢ï¼ŒæŒ‰ç…§éœ€è¦åœ¨åކå²ä¸­å‘“上â€ç§»åŠ¨ã€‚è¿™æ˜¯ä¸€ä¸ªå¢žé‡çš„æœç´¢ã€‚
        forward-search-history (C-s)
               从当å‰è¡Œå¼€å§‹å‘剿œç´¢ï¼ŒæŒ‰ç…§éœ€è¦åœ¨åކå²ä¸­å‘“下â€ç§»åŠ¨ã€‚è¿™æ˜¯ä¸€ä¸ªå¢žé‡çš„æœç´¢ã€‚
        non-incremental-reverse-search-history (M-p)
               从当å‰è¡Œå¼€å§‹å‘åŽï¼Œä½¿ç”¨éžå¢žé‡æœç´¢æ¥æŸ¥æ‰¾ç”¨æˆ·ç»™å‡ºçš„字符串。
        non-incremental-forward-search-history (M-n)
               从当å‰è¡Œå¼€å§‹å‘å‰ï¼Œä½¿ç”¨éžå¢žé‡æœç´¢æ¥æŸ¥æ‰¾ç”¨æˆ·ç»™å‡ºçš„字符串。
        history-search-forward
               从当å‰è¡Œå¼€å§‹å‘剿œç´¢åކå²ï¼ŒæŸ¥æ‰¾ä»Žå½“å‰è¡Œé¦–到  point 之间的字符串。
               这是一个éžå¢žé‡çš„æœç´¢ã€‚
        history-search-backward
               从当å‰è¡Œå¼€å§‹å‘åŽæœç´¢åކå²ï¼ŒæŸ¥æ‰¾ä»Žå½“å‰è¡Œé¦–到 point  之间的字符串。
               这是一个éžå¢žé‡çš„æœç´¢ã€‚
        yank-nth-arg (M-C-y)
               å°†å‰ä¸€ä¸ªå‘½ä»¤çš„ç¬¬ä¸€ä¸ªå‚æ•°  (通常是上一行的第二个è¯)  æ’入到 point
               ä½ç½®ã€‚æœ‰å‚æ•° n 时,将å‰ä¸€ä¸ªå‘½ä»¤çš„第 n ä¸ªè¯ (å‰ä¸€ä¸ªå‘½ä»¤ä¸­çš„è¯ä»Ž 0
               开始计数)  æ’入到  point  ä½ç½®ã€‚è´Ÿæ•°å‚æ•°åˆ™æ’å…¥å‰ä¸€ä¸ªå‘½ä»¤å€’数第 n
               个è¯ã€‚
        yank-last-arg (M-., M-_)
               æ’å…¥å‰ä¸€ä¸ªå‘½ä»¤çš„æœ€åŽä¸€ä¸ªå‚æ•°
               (ä¸Šä¸€åŽ†å²æ¡ç›®çš„æœ€åŽä¸€ä¸ªè¯)ã€‚æœ‰å‚æ•°æ—¶ï¼Œ                行为类似于
               yank-nth-arg。åŽç»§çš„            yank-last-arg             调用将
               从历å²åˆ—表中å‘åŽç§»åŠ¨ï¼Œä¾æ¬¡å°†æ¯è¡Œçš„æœ€åŽä¸€ä¸ªå‚æ•°æ’入。
        shell-expand-line (M-C-e)
               æ‰©å±•è¡Œï¼Œåƒ   shell  åšçš„那样。其中包å«åˆ«åå’ŒåŽ†å²æ‰©å±•,还有所有的
               shell     è¯çš„æ‰©å±•。      å‚è§ä¸‹é¢çš„      HISTORY      EXPANSION
               ä¸­å…³äºŽåŽ†å²æ‰©å±•çš„æè¿°ã€‚
        history-expand-line (M-^)
               在当å‰è¡Œè¿›è¡Œåކ岿‰©å±•。å‚è§ä¸‹é¢çš„        HISTORY        EXPANSION
               ä¸­å…³äºŽåŽ†å²æ‰©å±•çš„æè¿°ã€‚
        magic-space
               在当å‰è¡Œè¿›è¡Œåކ岿‰©å±•,并æ’入一个空格。å‚è§ä¸‹é¢çš„ HISTORY  EXPAN-
               SION ä¸­å…³äºŽåŽ†å²æ‰©å±•çš„æè¿°ã€‚
        alias-expand-line
               在当å‰è¡Œè¿›è¡Œåˆ«å扩展,å‚è§ä¸Šé¢çš„ ALIASES ä¸­å…³äºŽåˆ«åæ‰©å±•çš„æè¿°ã€‚
        history-and-alias-expand-line
               在当å‰è¡Œè¿›è¡Œåކå²å’Œåˆ«å扩展。
        insert-last-argument (M-., M-_)
               与 yank-last-arg åŒä¹‰ã€‚
        operate-and-get-next (C-o)
               接å—当å‰è¡Œï¼ŒåŠ ä»¥æ‰§è¡Œï¼Œä»ŽåŽ†å²ä¸­å–出相对当å‰è¡Œçš„下一行进行编肌
               任何傿•°éƒ½è¢«å¿½ç•¥ã€‚
        edit-and-execute-command (C-xC-e)
               å¯åŠ¨ä¸€ä¸ªç¼–è®¡é³Žå—‰å½“å‰å‘½ä»¤è¡Œï¼Œå°†ç»“果作为 shell  命令è¿è¡Œã€‚  Bash
               将便¬¡è¯•ç€è¿è¡Œ $FCEDIT, $EDITOR, å’Œ emacs 作为编计鳌
 
    Commands for Changing Text            本
        delete-char (C-d)
               删除            point            处的字符。如果            point
               在行首,行中没有字符,最åŽä¸€æ¬¡è¾“入的字符            没有被关è”到
               delete-char,将返回 EOF.
        backward-delete-char (Rubout)
               删除光标之åŽçš„å­—ç¬¦ã€‚å½“ç»™å‡ºä¸€ä¸ªæ•°å€¼çš„å‚æ•°æ—¶ï¼Œä¿å­˜åˆ é™¤çš„æ–‡æœ¬åˆ°
               kill ring 中。
        forward-backward-delete-char
               删除光标下的字符,除éžå…‰æ ‡åœ¨è¡Œå°¾ï¼Œæ­¤æ—¶åˆ é™¤å…‰æ ‡åŽçš„字符。
        quoted-insert (C-q, C-v)
               å°†è¾“å…¥çš„ä¸‹ä¸€å­—ç¬¦ä¿æŒåŒç ‘æ‹¥å«å…„å°ï¼ çº¾æ¢¢æ‚盟床迦肜嗨  C-q
               的字符。
        tab-insert (C-v TAB)
               æ’入一个跳格符å·ã€‚
        self-insert (a, b, A, 1, !, ...)
               æ’入键入的字符。
        transpose-chars (C-t)
               å°†  point  之å‰çš„字符å‘å‰ç§»åŠ¨ï¼Œè¶Šè¿‡  point  å¤„çš„å­—ç¬¦ï¼ŒåŒæ—¶ä¹Ÿæ”¹å˜
               point    çš„ä½ç½®ã€‚    如果     point     åœ¨è¡Œå°¾ï¼Œå°†è°ƒæ¢     point
               之å‰çš„ä¸¤ä¸ªå­—ç¬¦ã€‚è´Ÿæ•°å‚æ•°æ²¡æœ‰ä½œç”¨ã€‚
        transpose-words (M-t)
               å°†  point  之å‰çš„è¯å‘å‰ç§»åŠ¨ï¼Œè¶Šè¿‡ point 处的è¯ï¼ŒåŒæ—¶ä¹Ÿæ”¹å˜ point
               çš„ä½ç½®ã€‚ 如果 point 在行尾,将调æ¢è¡Œä¸­çš„æœ€åŽä¸¤ä¸ªè¯ã€‚
        upcase-word (M-u)
               å°†å½“å‰                                                (或下一个)
               è¯å˜æˆå…¨å¤§å†™ã€‚æœ‰è´Ÿå€¼çš„å‚æ•°æ—¶ï¼Œå°†å‰ä¸€ä¸ªè¯å˜ä¸ºå¤§å†™ï¼Œ    但是ä¸ç§»åЍ
               point。
        downcase-word (M-l)
               å°†å½“å‰                                                (或下一个)
               è¯å˜æˆå…¨å°å†™ã€‚æœ‰è´Ÿå€¼çš„å‚æ•°æ—¶ï¼Œå°†å‰ä¸€ä¸ªè¯å˜ä¸ºå°å†™ï¼Œ    但是ä¸ç§»åЍ
               point。
        capitalize-word (M-c)
               å°†å½“å‰                                                (或下一个)
               è¯å˜ä¸ºé¦–å­—å¤§å†™ã€‚æœ‰è´Ÿå€¼çš„å‚æ•°æ—¶ï¼Œå°†å‰ä¸€ä¸ªè¯å˜ä¸ºé¦–字大写,
               但是ä¸ç§»åЍ point。
        overwrite-mode
               控制æ’å…¥/改写模å¼ã€‚ç»™å‡ºä¸€ä¸ªæ­£æ•´æ•°å‚æ•°æ—¶ï¼Œåˆ‡æ¢ä¸ºæ”¹å†™æ¨¡å¼ã€‚ç»™å‡ºä¸€ä¸ªéžæ­£æ•°
               傿•°æ—¶ï¼Œåˆ‡æ¢ä¸ºæ’入模å¼ã€‚这个命令åªå½±å“   emacs   模å¼ï¼›vi   模å¼
               的改写与此ä¸åŒã€‚æ¯ä¸ªå¯¹                                readline()
               的调用都以æ’入模å¼å¼€å§‹ã€‚在改写模å¼ä¸‹ï¼Œ     å…³è”到    self-insert
               çš„å­—ç¬¦æ›¿æ¢  point  å¤„çš„å­—ç¬¦ï¼Œè€Œä¸æ˜¯å°†å®ƒæŽ¨åˆ°å³è¾¹ã€‚  å…³è”到  back-
               ward-delete-char      çš„å­—ç¬¦ä»¥ç©ºæ ¼æ›¿æ¢      point     å‰çš„字符。
               默认情况下,这个命令没有关è”。
 
    Killing and Yanking                è´´
        kill-line (C-k)
               剪切从 point 到行尾的文本。
        backward-kill-line (C-x Rubout)
               åå‘剪切到行首。
        unix-line-discard (C-u)
               åå‘剪切到行首。与       backward-kill-line       没有什么区别。
               剪切的文本被ä¿å­˜äºŽ kill-ring 中。
        kill-whole-line
               剪切当å‰è¡Œä¸­æ‰€æœ‰å­—符,ä¸ç®¡ point 在什么ä½ç½®ã€‚
        kill-word (M-d)
               剪切从          point         到当å‰è¯å°¾ï¼Œæˆ–者如果         point
               在è¯ä¹‹é—´ï¼Œé‚£ä¹ˆå‰ªåˆ‡åˆ°ä¸‹ä¸€è¯å°¾ã€‚
        backward-kill-word (M-Rubout)
               剪切 point 之åŽçš„è¯ã€‚è¯çš„边界与 backward-word 使用的相åŒã€‚
        unix-word-rubout (C-w)
               剪切  point   之åŽçš„è¯ï¼Œä½¿ç”¨ç©ºç™½ä½œä¸ºè¯çš„边界。剪切的文本被ä¿å­˜äºŽ
               kill-ring 中。
        delete-horizontal-space (M-\)
               删除 point 两边的所有空格和跳格。
        kill-region
               å‰ªåˆ‡å½“å‰ region 的文本。
        copy-region-as-kill
               å°† region 的文本å¤åˆ¶åˆ°å‰ªåˆ‡ç¼“冲区中。
        copy-backward-word
               å°†  point  å‰é¢çš„è¯å¤åˆ¶åˆ°å‰ªåˆ‡ç¼“冲区中。 è¯çš„边界与 backward-word
               使用的相åŒã€‚
        copy-forward-word
               å°† point 之åŽçš„è¯å¤åˆ¶åˆ°å‰ªåˆ‡ç¼“冲区中。  è¯çš„边界与  backward-word
               使用的相åŒã€‚
        yank (C-y)
               将 kill-ring 顶部的内容粘贴到 point 处的缓冲区中
        yank-pop (M-y)
               轮转   kill-ring,粘贴新的顶部内容。åªèƒ½åœ¨   yank   或  yank-pop
               之åŽä½¿ç”¨ã€‚
 
    Numeric Arguments            
        digit-argument (M-0, M-1, ..., M--)
               将这个数字加入已有的           (already            accumulating)
               傿•°ä¸­ï¼Œæˆ–è€…å¼€å§‹æ–°çš„å‚æ•°ã€‚ M-- 开始一个å¦å®šçš„傿•°ã€‚
        universal-argument
               è¿™æ˜¯æŒ‡å®šå‚æ•°çš„å¦ä¸€ç§æ–¹æ³•。如果这个命令åŽé¢è·Ÿç€ä¸€ä¸ªæˆ–多个数字,
               å¯èƒ½è¿˜åŒ…å«å‰å¯¼çš„è´Ÿå·ï¼Œè¿™äº›æ•°å­—å®šä¹‰äº†å‚æ•°ã€‚如果命令之åŽè·Ÿéšç€æ•°å­—ï¼Œå†æ¬¡æ‰§è¡Œ
               universal-argument
               å°†ç»“æŸæ•°å­—傿•°ï¼Œä½†æ˜¯å…¶ä»–情况下被忽略。有一ç§ç‰¹æ®Šæƒ…况,如果命令之åŽç´§æŽ¥ç€
               ä¸€ä¸ªå¹¶éžæ•°å­—或负å·çš„å­—ç¬¦ï¼Œä¸‹ä¸€å‘½ä»¤çš„å‚æ•°è®¡æ•°å°†ä¹˜ä»¥           4。
               傿•°è®¡æ•°åˆå§‹æ˜¯   1ï¼Œå› æ­¤ç¬¬ä¸€æ¬¡æ‰§è¡Œè¿™ä¸ªå‡½æ•°ï¼Œä½¿å¾—å‚æ•°è®¡æ•°ä¸º   4,
               ç¬¬äºŒæ¬¡æ‰§è¡Œä½¿å¾—å‚æ•°è®¡æ•°ä¸º 16,以此类推。
 
    Completing    å…¨
        complete (TAB)
               试ç€å¯¹          point          之å‰çš„æ–‡æœ¬è¿›è¡Œè¡¥å…¨ã€‚         Bash
               便¬¡è¯•ç€å°†æ–‡æœ¬ä½œä¸ºä¸€ä¸ªå˜é‡   (如果文本以   $   开始),一个用户å
               (如果文本以   ~   开始)ï¼Œä¸»æœºå  (如果文本以  @  开始),或者命令
               (以åŠåˆ«å和函数) æ¥è¡¥å…¨ã€‚如果这些都没有匹é…,将å°è¯•文件å补全。
        possible-completions (M-?)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„补全。
        insert-completions (M-*)
               æ’å…¥ possible-completions 已产生的 point 之å‰çš„æ–‡æœ¬æ‰€æœ‰çš„补全。
        menu-complete
               与                                                      complete
               相似,但是使用å¯èƒ½çš„补全列表中的æŸä¸ªåŒ¹é…替æ¢è¦è¡¥å…¨çš„è¯ã€‚
               é‡å¤æ‰§è¡Œ   menu-complete    å°†é历å¯èƒ½çš„补全列表,æ’å…¥æ¯ä¸ªåŒ¹é…。
               到达补全列表的结尾时,鸣终端å“铃  (按照  bell-style  的设置æ¥åš)
               å¹¶æ¢å¤åˆå§‹çš„æ–‡æœ¬ã€‚    傿•°    n     将在匹é…列表中å‘å‰ç§»åЍ     n
               æ­¥ï¼›è´Ÿæ•°å‚æ•°å¯ä»¥ç”¨äºŽåœ¨åˆ—表中å‘åŽç§»åŠ¨ã€‚     这个命令应当与    TAB
               键关è”,但是默认情况下是没有关è”的。
        delete-char-or-list
               åˆ é™¤å…‰æ ‡ä¸‹çš„å­—ç¬¦ï¼Œå¦‚æžœä¸æ˜¯åœ¨è¡Œé¦–或行尾   (类似    delete-char)。
               如果在行尾,行为与          possible-completions          一致。
               这个命令默认没有关è”。
        complete-filename (M-/)
               å°è¯•对 point 之å‰çš„æ–‡æœ¬è¿›è¡Œæ–‡ä»¶å补全。
        possible-filename-completions (C-x /)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„补全,将它视为文件å。
        complete-username (M-~)
               å°è¯•对 point 之å‰çš„æ–‡æœ¬è¿›è¡Œè¡¥å…¨ï¼Œå°†å®ƒè§†ä¸ºç”¨æˆ·å。
        possible-username-completions (C-x ~)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„补全,将它视为用户å。
        complete-variable (M-$)
               å°è¯•对 point 之å‰çš„æ–‡æœ¬è¿›è¡Œè¡¥å…¨ï¼Œå°†å®ƒè§†ä¸º shell å˜é‡ã€‚
        possible-variable-completions (C-x $)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„补全,将它视为 shell å˜é‡ã€‚
        complete-hostname (M-@)
               å°è¯•对 point 之å‰çš„æ–‡æœ¬è¿›è¡Œè¡¥å…¨ï¼Œå°†å®ƒè§†ä¸ºä¸»æœºå。
        possible-hostname-completions (C-x @)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„补全,将它视为主机å。
        complete-command (M-!)
               å°è¯•对                                                     point
               之å‰çš„æ–‡æœ¬è¿›è¡Œè¡¥å…¨ï¼Œå°†å®ƒè§†ä¸ºå‘½ä»¤å。命令补全å°è¯•ç€å°†æ­¤æ–‡æœ¬
               便¬¡ä¸Žåˆ«å,ä¿ç•™å­—,shell                            函数,shell
               å†…å»ºå‘½ä»¤ï¼Œæœ€åŽæ˜¯å¯æ‰§è¡Œæ–‡ä»¶å进行匹é…。
        possible-command-completions (C-x !)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„补全,将它视为命令å。
        dynamic-complete-history (M-TAB)
               å°è¯•对                                                     point
               之å‰çš„æ–‡æœ¬è¿›è¡Œè¡¥å…¨ï¼Œå°†æ­¤æ–‡æœ¬ä¸Žåކå²åˆ—è¡¨ä¸­çš„è¡Œç›¸æ¯”è¾ƒæ¥æŸ¥æ‰¾å¯èƒ½çš„补全匹é…。
        complete-into-braces (M-{)
               进行文件å补全,将å¯èƒ½çš„补全列表放在花括å·ä¸­æ’入,使得列表å¯ä»¥è¢«
               shell 使用 (å‚è§ä¸Šé¢çš„ Brace Expansion èŠ±æ‹¬å·æ‰©å±•)。
 
    Keyboard Macroså®
        start-kbd-macro (C-x ()
               开始ä¿å­˜è¾“入字符为当å‰é”®ç›˜å®ã€‚
        end-kbd-macro (C-x ))
               åœæ­¢ä¿å­˜è¾“入字符为当å‰é”®ç›˜å®ï¼Œä¿å­˜å®å®šä¹‰ã€‚
        call-last-kbd-macro (C-x e)
               釿–°æ‰§è¡Œä¸Šæ¬¡å®šä¹‰çš„键盘å®ï¼Œå³æ˜¾ç¤ºå‡ºå®ä¸­çš„字符,好åƒå®ƒä»¬æ˜¯ä»Žé”®ç›˜è¾“入的一样。
 
    Miscellaneous
        re-read-init-file (C-x C-r)
               读入 inputrc 文件的内容,åˆå¹¶å…¶ä¸­çš„æŒ‰é”®å…³è”å’Œå˜é‡èµ‹å€¼ã€‚
        abort (C-g)
               å–æ¶ˆå½“å‰ç¼–æµŽç¿æ–©è®¼ç‚ (按照 bell-style 的设置æ¥åš)。
        do-uppercase-version (M-a, M-b, M-x, ...)
               如果有               Meta              å‰ç¼€çš„字符              x
               是å°å†™çš„,那么与命令相关连的是对应的大写字符。
        prefix-meta (ESC)
               将输入的下一个字符加上 Meta å‰ç¼€ã€‚ ESC f 等价于 Meta-f.
        undo (C-_, C-x C-u)
               增é‡çš„æ’¤é”€ï¼Œåˆ†åˆ«è®°ä½æ¯ä¸€è¡Œã€‚
        revert-line (M-r)
               撤销这一行的所有修改。这与执行命令                          undo
               足够多次的效果相åŒï¼Œå°†è¿™ä¸€è¡Œæ¢å¤åˆ°åˆå§‹çжæ€ã€‚
        tilde-expand (M-&)
               对当å‰è¯è¿›è¡Œæ³¢æµªçº¿æ‰©å±•。
        set-mark (C-@, M-<space>)
               在                          point                         处设置
               markã€‚å¦‚æžœç»™å‡ºäº†æ•°å€¼çš„å‚æ•°ï¼Œæ ‡è®°è¢«è®¾ç½®åˆ°é‚£ä¸ªä½ç½®ã€‚
        exchange-point-and-mark (C-x C-x)
               äº¤æ¢                          point                           å’Œ
               mark。当å‰å…‰æ ‡ä½ç½®è¢«è®¾ç½®ä¸ºä¿å­˜çš„ä½ç½®ï¼Œæ—§å…‰æ ‡ä½ç½®è¢«ä¿å­˜ä¸º mark。
        character-search (C-])
               读入一个字符,point
               移动到这个字符下一次出现的地方。负数将æœç´¢ä¸Šä¸€ä¸ªå‡ºçŽ°ã€‚
        character-search-backward (M-C-])
               读入一个字符,point
               移动到这个字符上一次出现的地方。负数将æœç´¢ä¸‹é¢çš„出现。
        insert-comment (M-#)
               æ²¡æœ‰æ•°å€¼çš„å‚æ•°æ—¶ï¼Œreadline           å˜é‡          comment-begin
               的值将被æ’入到当å‰è¡Œé¦–ã€‚å¦‚æžœç»™å‡ºä¸€ä¸ªæ•°å€¼çš„å‚æ•°ï¼Œå‘½ä»¤çš„行为类似于一个开关:
               如果行首字符ä¸åŒ¹é…  comment-begin  的值,将æ’入这个值,å¦åˆ™ 匹é…
               comment-begin
               çš„å­—ç¬¦å°†è¢«ä»Žè¡Œé¦–åˆ é™¤ã€‚åœ¨ä¸¤ç§æƒ…况下,这一行都被接å—,
               好åƒè¾“入了新行符一样。comment-begin
               的默认值使得这个命令将当å‰è¡Œå˜æˆ            ä¸€æ¡           shell
               æ³¨é‡Šã€‚å¦‚æžœæ•°å€¼å‚æ•°ä½¿å¾—注释字符被删除,这一行将被 shell 执行。
        glob-complete-word (M-g)
               point
               之å‰çš„è¯è¢«å½“作路径扩展的一个模å¼ï¼Œå°¾éƒ¨æš—å«äº†ä¸€ä¸ªæ˜Ÿå·ã€‚这个模å¼è¢«ç”¨æ¥
               为å¯èƒ½çš„补全产生匹é…的文件å列表。
        glob-expand-word (C-x *)
               point
               之å‰çš„è¯è¢«å½“作路径扩展的一个模å¼ï¼ŒåŒ¹é…的文件å的列表被æ’入,替æ¢è¿™ä¸ªè¯ã€‚
               å¦‚æžœç»™å‡ºä¸€ä¸ªæ•°å€¼å‚æ•°ï¼Œåœ¨è·¯å¾„扩展之å‰å°†æ·»åŠ ä¸€ä¸ªæ˜Ÿå·ã€‚
        glob-list-expansions (C-x g)
               显示                                            glob-expand-word
               å¯èƒ½äº§ç”Ÿçš„æ‰©å±•的列表,é‡ç»˜å½“å‰è¡Œã€‚å¦‚æžœç»™å‡ºä¸€ä¸ªæ•°å€¼å‚æ•°ï¼Œåœ¨è·¯å¾„扩展之å‰å°†æ·»åŠ ä¸€ä¸ªæ˜Ÿå·ã€‚
        dump-functions
               å‘                                                      readline
               è¾“å‡ºæµæ‰“å°æ‰€æœ‰çš„函数和它们的按键关è”ã€‚å¦‚æžœç»™å‡ºä¸€ä¸ªæ•°å€¼å‚æ•°ï¼Œ
               输出将被格å¼åŒ–,å¯ä»¥ç”¨ä½œ inputrc 文件一部分。
        dump-variables
               å‘        readline        è¾“å‡ºæµæ‰“å°æ‰€æœ‰å¯è®¾ç½®çš„        readline
               å‡½æ•°ã€‚å¦‚æžœç»™å‡ºä¸€ä¸ªæ•°å€¼å‚æ•°ï¼Œ   输出将被格å¼åŒ–,å¯ä»¥ç”¨ä½œ  inputrc
               文件一部分。
        dump-macros
               å‘       readline       è¾“å‡ºæµæ‰“å°æ‰€æœ‰å…³è”到å®çš„        readline
               按键åºåˆ—以åŠå®ƒä»¬è¾“出的字符串。
               å¦‚æžœç»™å‡ºä¸€ä¸ªæ•°å€¼å‚æ•°ï¼Œè¾“出将被格å¼åŒ–,å¯ä»¥ç”¨ä½œ           inputrc
               文件一部分。
        display-shell-version (C-x C-v)
               æ˜¾ç¤ºå½“å‰ bash 实例的版本信æ¯ã€‚
 
    Programmable Completion                å…¨
        å½“è¯•å›¾å¯¹ä¸€ä¸ªå‘½ä»¤çš„å‚æ•°è¿›è¡Œè¯çš„补全时,如果已臼褂媚诮      complete
        定义了这个命令的补全规则 ( compspec),将å¯åЍå¯ç¼–程补全功能  (å‚è§ä¸‹é¢çš„
        shell        (SHELL BUILTIN COMMANDS) 章节)。
 
        首先,命令å被确认。如果针对这个命令有补全规则的定义,那么将使用
        规则æ¥äº§ç”Ÿå¯èƒ½çš„è¯çš„è¡¥å…¨çš„åˆ—è¡¨ã€‚å¦‚æžœå‘½ä»¤è¯æ˜¯ä¸€ä¸ªè·¯å¾„å…¨å,将首先æœç´¢
        针对这个路径全åçš„è§„åˆ™ã€‚å¦‚æžœé’ˆå¯¹è¿™ä¸ªè·¯å¾„å…¨åæ²¡æœ‰æ‰¾åˆ°è§„则,将å°è¯•查找
        针对最åŽä¸€ä¸ªæ–œæ åŽé¢çš„部分的规则。
 
        一旦找到了一个规则,它将用作产生匹é…çš„è¯ã€‚å¦‚æžœæ²¡æœ‰æ‰¾åˆ°ï¼Œå°†è¿›è¡Œä¸Šé¢ Com-
        pleting 中æè¿°çš„ bash 默认的补全。
 
        é¦–å…ˆï¼Œå°†æ‰§è¡Œè§„åˆ™æŒ‡å®šçš„åŠ¨ä½œã€‚åªæœ‰ä»¥è¢«è¡¥å…¨çš„è¯å¼€å§‹çš„匹é…è¯æ‰ä¼šè¢«è¿”回。
        当在文件或目录å补全中使用  -f  或  -d   选项时,shell   å˜é‡   FIGNORE
        将用于对匹é…进行过滤。
 
        接下æ¥ï¼Œå°†äº§ç”Ÿæ‰€æœ‰ç”±-G             é€‰é¡¹ç»™å‡ºçš„æ–‡ä»¶åæ‰©å±•æ¨¡å¼æŒ‡å®šçš„补全。
        模å¼äº§ç”Ÿçš„è¯ä¸å¿…匹é…è¦è¡¥å…¨çš„è¯ã€‚shell          å˜é‡          GLOBIGNORE
        ä¸ä¼šç”¨äºŽè¿‡æ»¤åŒ¹é…结果,但是å˜é‡ FIGNORE 会被使用。
 
        接下æ¥ï¼Œå°†è€ƒè™‘        -W       é€‰é¡¹çš„å‚æ•°æŒ‡å®šçš„字符串。这个字符串首先被
        划分,用特殊å˜é‡   IFS   中的字符作为分隔符。shell   引用被当作一个è¯ã€‚
        接下æ¥ï¼Œæ¯ä¸ªè¯è¢«æ‰©å±•ï¼Œä½¿ç”¨ä¸Šé¢   EXPANSION  中æè¿°çš„  brace  expansion,
        tilde expansion, parameter 和 variable expansion, command substitution,
        arithmetic        expansion,        ä»¥åŠ       pathname       expansion
        规则处ç†ã€‚对于结果,å†ä½¿ç”¨ä¸Šé¢  Word  Splitting  中æè¿°çš„规则划分æˆè¯ã€‚
        扩展的结果与è¦è¡¥å…¨çš„è¯è¿›è¡Œå‰éƒ¨ä¸€è‡´çš„æ¯”较,匹é…çš„è¯æˆä¸ºå¯èƒ½çš„补全。
 
        在这些匹é…被产生åŽï¼Œä»»ä½•ç”±     -F     å’Œ     -C     选项指定的    shell
        函数和命令将被执行。当命令或函数被执行时,å˜é‡ COMP_LINE å’Œ  COMP_POINT
        è¢«èµ‹å€¼ï¼Œä½¿ç”¨ä¸Šé¢    Shell   Variables   中的规则。   å¦‚æžœè¦æ‰§è¡Œ   shell
        函数,还将设置å˜é‡          COMP_WORDS          å’Œ           COMP_CWORD
        å½“å‡½æ•°æˆ–å‘½ä»¤è¢«æ‰§è¡Œæ—¶ï¼Œç¬¬ä¸€ä¸ªå‚æ•°æ˜¯ç­‰å¾…傿•°è¢«è¡¥å…¨çš„命令的å称,
        ç¬¬äºŒä¸ªå‚æ•°æ˜¯è¦è¡¥å…¨çš„è¯ï¼Œç¬¬ä¸‰ä¸ªå‚数是当å‰å‘½ä»¤è¡Œä¸­ï¼Œè¦è¡¥å…¨çš„è¯å‰é¢çš„è¯ã€‚
        对è¦è¡¥å…¨çš„è¯äº§ç”Ÿçš„补全ä¸ä¼šè¿›è¡Œä»»ä½•è¿‡æ»¤ï¼›å‡½æ•°æˆ–å‘½ä»¤åœ¨äº§ç”ŸåŒ¹é…æ—¶æœ‰å®Œå…¨çš„自由。
 
        任何   -F   指定的函数将被首先执行。函数å¯ä»¥ä½¿ç”¨ä»»ä½•    shell    功能,
        包å«å†…建命令  compgen,æ¥äº§ç”ŸåŒ¹é…。它必须将å¯èƒ½çš„补全放到数组å˜é‡  COM-
        PREPLY 中。
 
        接下æ¥ï¼Œä»»ä½•      -C       选项指定的命令将被执行,其执行环境与命令替æ¢
        的环境相åŒã€‚å®ƒåº”å½“å‘æ ‡å‡†è¾“出打å°ä¸€ä¸ªè¡¥å…¨çš„列表,æ¯è¡Œä¸€ä¸ªã€‚
        åæ–œæ å¯ä»¥ç”¨æ¥è½¬ä¹‰ä¸€ä¸ªæ–°è¡Œç¬¦ï¼Œå¦‚果需è¦çš„è¯ã€‚
 
        所有å¯èƒ½çš„补全都产生之åŽï¼Œå°†å¯¹åˆ—表进行     -X      选项指定的任何过滤。
        过滤器是一个模å¼ï¼Œå’Œè·¯å¾„忉©å±•中的一样;模å¼ä¸­çš„        &        替æ¢ä¸º
        è¦è¡¥å…¨çš„è¯ã€‚å­—é¢ä¸Šçš„   &   å¯ä»¥ç”¨åæ–œæ è½¬ä¹‰ï¼›åæ–œæ åœ¨è¿›è¡ŒåŒ¹é…时被删除。
        任何匹é…这个模å¼çš„补全将从列表中删除。å‰å¯¼çš„    !    将使模å¼å«ä¹‰ç›¸åï¼›
        è¿™ç§æƒ…况下,任何ä¸åŒ¹é…这个模å¼çš„补全将被删除。
 
        最åŽï¼ŒB-P     å’Œ     -S      指定的任何å‰ç¼€å’ŒåŽç¼€è¢«æ·»åŠ åˆ°è¡¥å…¨åˆ—è¡¨çš„æ¯ä¸ª
        æˆå‘˜åŽé¢ï¼Œç»“果返回给 readline 补全代ç ï¼Œä½œä¸ºå¯èƒ½çš„补全列表。
 
        å¦‚æžœå…ˆå‰æ‰§è¡Œçš„动作没有产生任何匹é…,并且在定义 compspec 规则时,为 com-
        plete 命令æä¾›äº† -o dirname 选项,将å°è¯•目录å补全。
 
        默认情况下,如果找到了一个规则,它产生的任何东西都被返回给补全代ç ï¼Œ
        作为å¯èƒ½çš„补全的全集。ä¸å†å°è¯•默认的    bash    补全,readline   默认的
        文件åè¡¥å…¨ä¹Ÿä¼šç¦æ­¢ã€‚如果定义规则时,为 complete 命令æä¾›äº†  -o  default
        é€‰é¡¹ï¼Œåœ¨è§„åˆ™æ²¡æœ‰äº§ç”ŸåŒ¹é…æ—¶å°†è¿›è¡Œ readline 默认的补全处ç†ã€‚
 
        当一个规则指出期望目录å补全时,å¯ç¼–程补全函数强制             readline
        在补全的åç§° åŽé¢æ·»åŠ ä¸€ä¸ªæ–œæ ï¼Œå¦‚果它是一个到目录的符å·è¿žæŽ¥ã€‚ç„¶åŽè¿˜è¦-
        过   readline   å˜é‡   mark-directories  的值处ç†ï¼Œä¸ç®¡  readline  å˜é‡
        mark-symlinked-directories 的值是什么。
 
    (HISTORY)
        当å¯ç”¨å†…建命令 set çš„ -o history 选项时,shell  å…许访问  command  his-
        tory,以å‰è¾“入的命令的列表。                                   HISTSIZE
        的值用作命令列表中ä¿å­˜çš„命令数é‡ã€‚   过去   HISTSIZE   个   (默认为500)
        命令将被ä¿å­˜ã€‚shell å°†æ¯æ¡å‘½ä»¤åœ¨è¿›è¡Œå‚æ•°å’Œå˜é‡æ‰©å±•ä¹‹å‰ ä¿å­˜åˆ°åކå²åˆ—表中
        (å‚è§ä¸Šé¢çš„ EXPANSION 段è½)ï¼Œä½†æ˜¯æ˜¯åœ¨åŽ†å²æ‰©å±•进行之åŽï¼Œå¹¶ä¸”è¦ç«Ÿ  shell
        å˜é‡ HISTIGNORE å’Œ HISTCONTROL 处ç†ã€‚
 
        在å¯åŠ¨æ—¶ï¼ŒåŽ†å²æ ¹æ®ä»¥å˜é‡  HISTFILE  的值为å的文件 (默认是 ~/.bash_his-
        tory)          进行åˆå§‹åŒ–。          如果需è¦çš„è¯ï¼Œä»¥          HISTFILE
        为å的文件将被截断,æ¥åŒ…å«ä¸è¶…过å˜é‡                       HISTFILESIZE
        的值指定的行数。当交互       shell        é€€å‡ºæ—¶ï¼Œæœ€åŽ        $HISTSIZE
        行被从历å²åˆ—表中å¤åˆ¶åˆ°  $HISTFILE 文件中。如果å¯ç”¨äº† shell 选项 histap-
        pend    (å‚è§ä¸‹é¢çš„    shell           (SHELL    BUILTIN     COMMANDS)
        章节中对内建命令                                                  shopt
        çš„æè¿°)ï¼Œè¿™äº›è¡Œè¢«è¿½åŠ åˆ°åŽ†å²æ–‡ä»¶ä¸­ï¼Œå¦åˆ™åކ岿–‡ä»¶è¢«è¦†ç›–。如果    HISTFILE
        è¢«å–æ¶ˆå®šä¹‰ï¼Œæˆ–è€…å¦‚æžœåŽ†å²æ–‡ä»¶ä¸å¯å†™ï¼Œåކå²å°†ä¸ä¼šä¿å­˜ã€‚ä¿å­˜åކå²ä¹‹åŽï¼Œ
        åŽ†å²æ–‡ä»¶è¢«æˆªæ–­ï¼Œä»¥åŒ…å«ä¸è¶…过   HISTFILESIZE    行。如果    HISTFILESIZE
        è¢«å–æ¶ˆå®šä¹‰ï¼Œä¸ä¼šè¿›è¡Œæˆªæ–­æ“作。
 
        内建命令  fc  (å‚è§ä¸‹é¢çš„  shell        (SHELL BUILTIN COMMANDS) 章节)
        å¯ä»¥ç”¨æ¥åˆ—å‡ºæˆ–ä¿®æ”¹å¹¶é‡æ–°æ‰§è¡Œåކå²åˆ—表中的一部分。内建命令        history
        å¯ä»¥ç”¨æ¥æ˜¾ç¤ºæˆ–修改历å²åˆ—表,æ“ä½œåŽ†å²æ–‡ä»¶ã€‚å½“ä½¿ç”¨å‘½ä»¤è¡Œç¼–é™…ä¿æ  ç¼–-
        模å¼éƒ½æœ‰æœç´¢å‘½ä»¤ï¼Œæä¾›å¯¹åކå²åˆ—表的访问。
 
        shell   å…许控制哪些命令被ä¿å­˜åˆ°åކå²åˆ—表中。å¯ä»¥è®¾ç½®   HISTCONTROL   å’Œ
        HISTIGNORE å˜é‡ï¼Œæ¥ä½¿å¾— shell åªä¿å­˜è¾“入命令的一个å­é›†ã€‚shell 选项 cmd-
        hist                      如果被å¯ç”¨ï¼Œå°†ä½¿å¾—                      shell
        将多行的命令的æ¯ä¸€è¡Œä¿å­˜åˆ°åŒä¸€ä¸ªåކ岿¡ç›®ä¸­ï¼Œ
        在需è¦çš„åœ°æ–¹æ·»åŠ åˆ†å·æ¥ä¿è¯è¯­ä¹‰çš„æ­£ç¡®æ€§ã€‚shell 选项 lithist  使得  shell
        ä¿å­˜å‘½ä»¤æ—¶ï¼Œä¿ç•™åµŒå…¥çš„æ–°è¡Œè€Œä¸æ˜¯ç”¨åˆ†å·ä»£æ›¿ã€‚å‚è§ä¸‹é¢              shell
               (SHELL      BUILTIN      COMMANDS)      中,内建命令      shopt
        çš„æè¿°ï¼Œæœ‰å…³è®¾ç½®å’Œå–消 shell 选项的信æ¯ã€‚
        shell                    支æŒåކ岿‰©å±•机制,类似于                   csh
        ä¸­åŽ†å²æ‰©å±•。这一节æè¿°äº†å¯ç”¨çš„语法特å¾ã€‚在交互的                  shell
        中这一机制被默认å¯ç”¨ï¼Œ   å¯ä»¥ä½¿ç”¨å†…建命令   set   çš„   -H  选项æ¥ç¦ç”¨å®ƒ
        (å‚è§ä¸‹é¢çš„  shell         (SHELL  BUILTIN  COMMANDS)  章节)。éžäº¤äº’çš„
        shell 默认ä¸è¿›è¡Œåކ岿‰©å±•。
 
        åŽ†å²æ‰©å±•将历å²åˆ—表中的è¯å¼•入输入æµä¸­ï¼Œä½¿å¾—å¯ä»¥æ–¹ä¾¿åœ°é‡å¤å·²æ‰§è¡Œå‘½ä»¤ï¼Œ
        在当å‰è¾“入行中为å‰ä¸€ä¸ªå‘½ä»¤æ’å…¥æ–°çš„å‚æ•°ï¼Œ
        或者快速修正å‰ä¸€ä¸ªå‘½ä»¤ä¸­çš„错误。
 
        åŽ†å²æ‰©å±•在读入一整行åŽï¼Œåœ¨      shell      将它拆分æˆè¯ä¹‹å‰ç«‹å³è¿›è¡Œã€‚它
        由两部分组æˆã€‚首先是判断替æ¢ä¸­ä½¿ç”¨åކå²åˆ—表中哪一行。其次是选择那一行中è¦åŒ…å«åˆ°å½“å‰è¡Œä¸­çš„部分。
        从历å²ä¸­é€‰æ‹©çš„行称为        event,从那一行中选择的部分是       words。
        å¯ä»¥ç”¨å¤šç§å¤šæ ·çš„                                              modifiers
        æ¥æ“纵所选的è¯ã€‚åœ¨è¯»å…¥è¾“å…¥æ—¶ï¼Œè¡Œè¢«æŒ‰ç…§åŒæ ·æ–¹å¼åˆ†è§£æˆè¯ï¼Œ     因此多个以
        metacharacter                分隔的è¯ï¼Œå¦‚果被引å·åŒ…å«ï¼Œå°±è¢«å½“æˆä¸€ä¸ªè¯ã€‚
        åŽ†å²æ‰©å±•ç”±åŽ†å²æ‰©å±•字符引入,默认是           !ã€‚åªæœ‰åæ–œæ           (\)
        å’Œå•引å·å¯ä»¥å¼•ç”¨åŽ†å²æ‰©å±•字符。
 
        内建命令  shopt  å¯ä»¥è®¾å®šå¤šä¸ªé€‰é¡¹å€¼ï¼Œæ¥è°ƒæ•´åކ岿‰©å±•的行为。如果   shell
        选项  histverify 被å¯ç”¨ (å‚è§å†…建命令 shopt çš„æè¿°),并且正在使用 read-
        lin,                  åŽ†å²æ›¿æ¢ä¸ä¼šè¢«ç«‹å³ä¼ ç»™                   shell
        解释器。与此相对,扩展åŽçš„è¡Œè¢«é‡æ–°è½½å…¥           readline          ç¼–-
        缓冲区,进行进一步的修改。如果正在使用 readlin,并且å¯ç”¨äº† shell 选项
        histreedi,      å¤±è´¥çš„åŽ†å²æ›¿æ¢å°†è¢«é‡æ–°è½½å…¥åˆ°      readline      ç¼–-
        缓冲区,进行改正。内建命令           history           的            -p
        选项å¯ä»¥ç”¨æ¥åœ¨æ‰§è¡Œä¹‹å‰æŸ¥çœ‹åކ岿‰©å±•将如何进行。内建命令  history  çš„  -s
        选项å¯ä»¥ç”¨æ¥åœ¨åކå²åˆ—表末尾添加命令,而ä¸çœŸæ­£æ‰§è¡Œå®ƒä»¬ï¼Œä»Žè€Œ
        在接下æ¥çš„调用中å¯ä»¥ä½¿ç”¨å®ƒä»¬ã€‚
 
        shell å…è®¸æŽ§åˆ¶åŽ†å²æ‰©å±•机制使用的多ç§å­—符 (å‚è§ä¸Šé¢çš„ Shell Variables 中
        histchars çš„æè¿°)。
 
    Event Designators
        事件指示器 (event designator) 是一个对历å²åˆ—表中æŸä¸ªå‘½ä»¤è¡Œæ¡ç›®çš„引用。
 
        !      开始一个命令替æ¢ï¼Œé™¤éžåŽé¢è·Ÿéšçš„æ˜¯ blank, newline, = 或是 (.
        !n     引用命令行 n.
        !-n    引用当å‰å‘½ä»¤è¡Œå‡åŽ» n.
        !!     引用上一æ¡å‘½ä»¤ã€‚这是 `!-1' çš„åŒä¹‰è¯ã€‚
        !string
               引用最近的以 string 开始的命令。
        !?string[?]
               å¼•ç”¨æœ€è¿‘çš„åŒ…å« string 的命令。尾部的 ?  å¯ä»¥è¢«å¿½ç•¥ï¼Œå¦‚æžœ  string
               之åŽç´§æŽ¥ç€ä¸€ä¸ªæ–°è¡Œç¬¦ã€‚
        ^string1^string2^
               快速替æ¢ã€‚é‡å¤ä¸Šä¸€æ¡å‘½ä»¤ï¼Œå°†   string1   替æ¢ä¸º   string2.    与
               ``!!:s/string1/string2/'' 等价 (å‚è§ä¸‹é¢çš„        符(Modifiers))。
        !#     到此为止输入的整个命令行。
 
    Word Designators
        è¯æŒ‡ç¤ºå™¨  (word  designator) 用于从 event 中选择期望的è¯ã€‚ : 分隔 event
        规则与  word  指示器。它å¯ä»¥å¿½ç•¥ï¼Œå¦‚æžœè¯æŒ‡ç¤ºå™¨ä»¥  ^,  $,  *,  -,  或  %
        开始。è¯è¢«ä»Žè¡Œé¦–开始编å·ï¼Œç¬¬ä¸€ä¸ªè¯è¢«è¡¨ç¤ºä¸º
        0。æ’入当å‰è¡Œä¸­çš„è¯ä»¥å•个空格分隔。
 
        0 (zero)
               第 0 个è¯ã€‚对 shell æ¥å°†ï¼Œè¿™æ˜¯å‘½ä»¤å。
        n      第 n 个è¯ã€‚
        ^      ç¬¬ä¸€ä¸ªå‚æ•°ã€‚也就是,第 1 个è¯ã€‚
        $      最åŽçš„傿•°ã€‚
        %      最近一次æœç´¢ `?string?' 匹é…çš„è¯ã€‚
        x-y    一组è¯ï¼›`-y' 是 `0-y' 的简写。
        *      所有è¯ï¼Œé™¤äº†ç¬¬   0   个。这是   `1-$'    çš„åŒä¹‰è¯ã€‚如果    event
               ä¸­åªæœ‰ä¸€ä¸ªè¯ï¼Œä½¿ç”¨ * ä¹Ÿä¸æ˜¯é”™è¯¯ï¼›è¿™ç§æƒ…况下将返回空字符串。
        x*     x-$ 的简写。
        x-     -$ çš„ç®€å†™ï¼Œå°±åƒ x* 一样,但是忽略最åŽä¸€ä¸ªè¯ã€‚
 
        如果给出了一个   word   指示器,没有给出  event  规则,å‰ä¸€ä¸ªå‘½ä»¤å°†ç”¨ä½œ
        event。
 
           符(Modifiers)
        å¯é€‰çš„      word      指示器之åŽï¼Œå¯ä»¥å‡ºçŽ°ä¸€ä¸ªæˆ–å¤šä¸ªä¸‹è¿°      modifiers
        çš„åºåˆ—,æ¯ä¸€ä¸ªéƒ½å‰ç¼€æœ‰ `:'。
 
        h      删除文件å组æˆçš„尾部,åªä¿ç•™å¤´éƒ¨ã€‚
        t      删除文件å组æˆä¸­å‰é¢çš„æˆåˆ†ï¼Œä¿ç•™å°¾éƒ¨ã€‚
        r      删除 .xxx å½¢å¼ä¸­å°¾éƒ¨çš„åŽç¼€æˆåˆ†ï¼Œä¿ç•™åŸºæœ¬å称部分。
        e      删除所有内容,ä¿ç•™å°¾éƒ¨çš„åŽç¼€ã€‚
        p      æ‰“å°æ–°çš„å‘½ä»¤ï¼Œä½†æ˜¯ä¸æ‰§è¡Œå®ƒã€‚
        q      å¼•ç”¨æ›¿æ¢æ‰€å¾—çš„è¯ï¼Œä½¿å®ƒä¸å†è¿›è¡Œæ›¿æ¢ã€‚
        x      å¼•ç”¨æ›¿æ¢æ‰€å¾—çš„è¯ï¼Œç±»ä¼¼ä¸Ž      q,     ä½†æ˜¯ä¼šæ ¹æ®     blank        
               和新行符分解为è¯ã€‚
        s/old/new/
               将事件行中出现的第一个 old 替æ¢ä¸º new任何分隔符都å¯ä»¥ç”¨æ¥ä»£æ›¿
               /,最åŽä¸€ä¸ªåˆ†éš”符是å¯é€‰çš„,如果它是事件行的最åŽä¸€ä¸ªå­—符。 old å’Œ
               new   中的分隔符å¯ä»¥ç”¨ä¸€ä¸ªåæ–œæ æ¥å¼•用。如果   &   出现在    new
               中,它将替æ¢ä¸º    old_ å¯ä»¥ç”¨å•ä¸ªåæ–œæ æ¥å¼•用   &。如果   old
               ä¸ºç©ºï¼Œå®ƒå°†è®¾ç½®ä¸ºæœ€åŽæ›¿æ¢çš„                                 old_
               或者,如果å‰é¢æ²¡æœ‰å‘ç”Ÿè¿‡åŽ†å²æ›¿æ¢ï¼Œå°±æ˜¯               !?string[?]
               æœç´¢ä¸­çš„æœ€åŽä¸€ä¸ª string_
        &      é‡å¤ä¸Šä¸€æ¬¡æ›¿æ¢ã€‚
        g      使得改å˜è¢«æ•´ä¸ªäº‹ä»¶è¡Œæ‰€æŽ¥å—。用于与    `:s'    或    `:&'    结åˆ
               (例如,`:gs/old/new/')。               如果与               `:s'
               结åˆä½¿ç”¨ï¼Œä»»ä½•分隔符都å¯ä»¥ç”¨æ¥ä»£æ›¿                           /,
               最åŽä¸€ä¸ªåˆ†éš”符是å¯é€‰çš„,如果它是事件行的最åŽä¸€ä¸ªå­—符。
        除éžå¦å¤–说明,这一章介ç»çš„å†…å»ºå‘½ä»¤å¦‚æžœæŽ¥å—  -  引导的选项,那么它也接å—
        -- ä½œä¸ºå‚æ•°ï¼Œæ¥æŒ‡ç¤ºé€‰é¡¹çš„结æŸ
        : [arguments]
               没有效果;这个命令除了扩展                             arguments
               并且作任何指定的é‡å®šå‘之外,ä¸åšä»»ä½•事。 退出时返回0。
 
         .  filename [arguments]
        source filename [arguments]
               读å–å¹¶åœ¨å½“å‰  shell  环境中执行 filename 中的命令,返回 filename
               中最åŽä¸€ä¸ªå‘½ä»¤çš„返回状æ€ã€‚如果       filename       中ä¸åŒ…嫿–œæ 
               (slash),系统将在   PATH  ä¸­æŸ¥æ‰¾åŒ…å«  filename  的目录。在  PATH
               中æœç´¢çš„æ–‡ä»¶ä¸å¿…æ˜¯å¯æ‰§è¡Œçš„。 如果 bash 䏿˜¯è¿è¡ŒäºŽ posix mode,当
               PATH 中找ä¸åˆ°æ–‡ä»¶æ—¶ä¼šåœ¨å½“å‰ç›®å½•æœç´¢ã€‚如果 shopt 内建命令的 sour-
               cepath  选项被关闭,  PATH  å°†ä¸ä¼šè¢«æœç´¢ã€‚如果有任何   arguments
               ,它们æˆä¸º  filename  çš„ä½ç½®å‚æ•°  (positional  parameters),å¦åˆ™
               ä½ç½®å‚æ•°ä¸å‘生å˜åŒ–。  è¿”å›žçŠ¶æ€æ˜¯è„šæœ¬ä¸­æœ€åŽä¸€ä¸ªå‘½ä»¤é€€å‡ºæ—¶çš„状æ€ã€‚
               没有执行命令则返回0,没有找到或ä¸èƒ½è¯»å– filename 时返回false。
 
        alias [-p] [name[=value] ...]
               Alias ä¸å¸¦å‚数或者带 -p 傿•°è¿è¡Œæ—¶å°†åœ¨æ ‡å‡†è¾“å‡ºä»¥è¿™æ ·çš„æ ¼å¼ alias
               name=value 给出别å列表。 å¦‚æžœæœ‰å‚æ•°ï¼Œå°†åˆ›å»ºæä¾›äº† value çš„ name
               的别å。                                                   value
               中尾部的空格使得别å被扩展时,下一个è¯åšåˆ«å替æ¢ã€‚
               å¯¹äºŽå‚æ•°åˆ—表中的æ¯ä¸€ä¸ª        name,如果        value       没有
               给出,这个别åçš„å称和值会被打å°å‡ºæ¥ã€‚ Alias 返回 true é™¤éž name
               没有定义为别å。
 
        bg [jobspec]
               ä½¿æŒ‚èµ·çš„ç¨‹åº      jobspec     在åŽå°ç»§ç»­æ‰§è¡Œï¼Œå°±å¥½åƒå®ƒæ˜¯ç”¨     &
               å¯åŠ¨çš„ä¸€æ ·ã€‚å¦‚æžœæ²¡æœ‰æŒ‡å®š  jobspec,shell  æ„义上的  current  job
                           襙            将被使用。            bg            jobspec
               返回0,除éžå½“å‰ç¦æ­¢äº†ä½œä¸šæŽ§åˆ¶ï¼Œæˆ–者在å…许作业控制,但 是没有找到
               jobspec ï¼Œæˆ–è€…å®ƒä¸æ˜¯åœ¨ä½œä¸šæŽ§åˆ¶ä¸‹å¯åŠ¨çš„æ—¶å€™ã€‚
 
        bind [-m keymap] [-lpsvPSV]
        bind [-m keymap] [-q function] [-u function] [-r keyseq]
        bind [-m keymap] -f filename
        bind [-m keymap] -x keyseq:shell-command
        bind [-m keymap] keyseq:function-name
        bind readline-command
               æ˜¾ç¤ºå½“å‰   readline   键和功能的,将一个按键åºåˆ—和一个  readline
               功能或å®è¿›è¡Œå…³è”,或者设置一个                          readline
               å˜é‡ã€‚æ¯ä¸€ä¸ªåœ¨éžé€‰é¡¹çš„傿•°éƒ½æ˜¯ä¸€ä¸ªå‘½ä»¤ï¼Œå¥½åƒå®ƒæ˜¯åœ¨      .inputrc
               中出现的一样。但是æ¯ä¸ªå…³è”或者命令必须作为å•ç‹¬çš„å‚æ•°ä¼ é€’ï¼›
               也就是这样           '"\C-x\C-r":           re-read-init-file'。
               å¦‚æžœæœ‰å‚æ•°ï¼Œå®ƒä»¬æœ‰å¦‚下的æ„义:
               -m keymap
                      使用 keymap 作为éšåŽçš„å…³è”çš„keymap。å¯é€‰çš„ keymap  å称是
                      emacs,   emacs-standard,   emacs-meta,   emacs-ctlx,  vi,
                      vi-move, vi-command,还有 vi-insert。  vi  和  vi-command
                      等价; emacs 和 emacs-standard 等价。
               -l     列出所有的 readline 功能。
               -p     以程åºå¯è¯»çš„æ–¹å¼æ˜¾ç¤º readline 功能å称和关è”
               -P     åˆ—å‡ºå½“å‰ readline 功能å称和关è”。
               -v     以程åºå¯è¯»çš„æ–¹å¼æ˜¾ç¤º readline å˜é‡å称和值
               -V     åˆ—å‡ºå½“å‰ readline å˜é‡å’Œå€¼ã€‚
               -s     以程åºå¯è¯»çš„æ–¹å¼æ˜¾ç¤º readline é”®åºåˆ—和对应的å®
               -S     显示 readline å®å¯¹åº”的键åºåˆ—和他们输出的字符串
               -f filename
                      从 filename 中读å–é”®åºåˆ—
               -q function
                      查询那些键将执行function。
               -u function
                      å–æ¶ˆæ‰€æœ‰å…³è”到 function 的键。
               -r keyseq
                      å–æ¶ˆå½“å‰ä»»ä½• keyseq 的关è”。
               -x keyseq:shell-command
                      使 shell-command 在 keyseq 按下时被执行。
 
               返回值是0,除éžç»™å‡ºäº†ä¸€ä¸ªä¸èƒ½è¯†åˆ«çš„选项或是产生了一个错误。
 
        break [n]
               从一个  for,  while,  until,  或者 select 鸦å é¡ºè§¥ 如果指定了 n
               ,就跳出   n   层鸦贰   n   å¿…é¡»   >=   1。如果   n    比当å‰-
               环层数还è¦å¤§ï¼Œå°†è·³å‡ºæ‰€æœ‰é¸¦è´°  返回值是0ï¼Œé™¤éžæ‰§è¡Œ  break 的时候
               shell 䏿˜¯åœ¨æ‰§è¡Œä¸€ä¸ªé¸¦è´°
 
        builtin shell-builtin [arguments]
               执行指定的 shell 内建命令,传递  arguments  ,返回命令的返回值。
               这在定义了一个和        shell       内建命令åŒå的函数时很有用,
               åœ¨é‚£ä¸ªå‡½æ•°ä¸­ä½¿ç”¨å®ƒæ¥æ‰§è¡Œç›¸åº”的功能。cd
               å‘½ä»¤å¸¸ä»¥è¿™ç§æ–¹å¼é‡æ–°å®šä¹‰ã€‚      è¿”å›žçŠ¶æ€æ˜¯     false,如果指定的
               shell-builtin 并䏿˜¯ä¸€ä¸ª shell 内建命令。
 
        cd [-L|-P] [dir]
               改å˜å½“å‰è·¯å¾„到   dir。这个å˜é‡çš„默认值是   HOME   目录。环境å˜é‡
               CDPATH       å®šä¹‰äº†åŒ…å«      dir      çš„æœç´¢è·¯å¾„。在      CDPATH
               中å¯é€‰çš„路径å以冒å·(:)              分隔。               CDPATH
               中的空路径å与当å‰è·¯å¾„相åŒï¼Œå°±æ˜¯   ``.''.   如果          胈 以斜æ 
               (/,slash)      起始,那么      CDPATH      ä¸ä¼šè¢«ä½¿ç”¨ã€‚       -P
               选项是说使用物ç†è·¯å¾„ç»“æž„è€Œä¸æ˜¯è·Ÿéšç¬¦å·é“¾æŽ¥ï¼Œ(å‚è§  set  命令中的
               -P  选项);  -L  选项强制跟éšç¬¦å·é“¾æŽ¥ã€‚å¦å¤–,选项  -  与  $OLDPWD
               是相åŒçš„。 返回值是 true ,如果æˆåŠŸåœ°æ”¹å˜äº†ç›®å½•ï¼›å¦åˆ™æ˜¯ false。
 
        command [-pVv] command [arg ...]
               è¿è¡Œ   command   ,使用   args   ä½œä¸ºå‚æ•°ï¼Œç¦æ­¢é€šå¸¸çš„æŸ¥æ‰¾  shell
               å‡½æ•°çš„è¿‡ç¨‹ã€‚åªæœ‰å†…建命令或者 PATH 中包å«çš„命令å¯ä»¥æ‰§è¡Œã€‚如果给出
               -p         傿•°ï¼Œ         command         的查找是以        PATH
               的默认值进行的。这样å¯ä»¥ä¿è¯æ‰¾åˆ°æ‰€æœ‰çš„æ ‡å‡†å·¥å…·ã€‚如果给出 -V 或者
               -v      选项,关于      command      的说明将被打å°å‡ºæ¥ã€‚     -v
               选项使得表述这个命令的è¯ï¼Œæˆ–è€…è¦æ‰§è¡Œ                     command
               éœ€è¦æ‰§è¡Œçš„æ–‡ä»¶æ˜¾ç¤ºå‡ºæ¥ï¼›  -V  选项给出更详细的æè¿°ã€‚如果给出  -V
               或者 -v 选项,退出状æ€åœ¨æ‰¾åˆ°äº† command  的情况下0,没找到就是1。
               如果没有æä¾›é€‰é¡¹ï¼Œå¹¶ä¸”产生了错误或者                     command
               没有找到,退出状æ€å°±æ˜¯127。å¦åˆ™ï¼Œ  command  å†…å»ºå‘½ä»¤çš„é€€å‡ºçŠ¶æ€æ˜¯
               command 的退出状æ€ã€‚
 
        compgen [option] [word]
               æ ¹æ®  option 为 word 产生å¯èƒ½çš„补全。option 是 内建命令 complete
               接å—的任何选项,除了 -p å’Œ  -r,将匹é…结果写到标准输出。  当使用
               -F     或     -C     选项时,å¯ç¼–程补全功能所设置的多数    shell
               å˜é‡å¦‚果存在,其值将ä¸å†æœ‰ç”¨ã€‚
 
               产生的匹é…与å¯ç¼–ç¨‹è¡¥å…¨ä»£ç æ ¹æ®è¡¥å…¨è§„则加上相åŒçš„æ ‡å¿—直接产生的结果相åŒã€‚
               如果指定了 wordï¼Œåªæœ‰åŒ¹é… word 的补全结果将被显示出æ¥ã€‚
 
               è¿”å›žå€¼ä¸ºçœŸï¼Œé™¤éžæä¾›äº†éžæ³•的选项,或者没有产生匹é…。
 
        complete  [-abcdefgjksuv] [-o comp-option] [-A action] [-G globpat] [-W
        wordlist] [-P prefix] [-S suffix]
               [-X filterpat] [-F function] [-C command] name [name ...]
        complete -pr [name ...]
               指定æ¯ä¸ª   name   çš„å‚æ•°åº”当如何被补全。如果给出了   -p   选项,
               或者没有选项给出,现有的补全规则将被显示出æ¥ï¼Œä»¥ä¸€ç§å¯ä»¥é‡ç”¨ä¸ºè¾“å…¥
               çš„æ ¼å¼æ˜¾ç¤ºã€‚-r    选项将一个针对æ¯ä¸ª    name    的补全规则删除。
               或者,如果没有给出 name,将删除所有补全规则。
 
               å°è¯•è¯çš„è¡¥å…¨æ—¶ï¼Œåº”ç”¨è¿™äº›è¡¥å…¨è§„åˆ™çš„è¿‡ç¨‹åœ¨ä¸Šé¢  Programmable  Com-
               pletion(å¯ç¼–程补全) 中详述。
 
               其他选项,如果给出的è¯ï¼Œå…·æœ‰ä¸‹åˆ—æ„义。-G,  -W,  å’Œ -X é€‰é¡¹çš„å‚æ•°
               (如果需è¦çš„è¯ï¼Œè¿˜åŒ…括        -P        å’Œ        -S        选项)
               应当被引用,é¿å…在执行内建命令 complete 之å‰è¢«æ‰©å±•。
               -o comp-option
                       comp-option                æŽ§åˆ¶ç€               compspec
                       除了简å•地产生补全之外的多ç§è¡Œä¸ºã€‚           comp-option
                       å¯ä»¥æ˜¯å¦‚下之一:
                       default 使用  readline  的默认文件å补全,如果  compspec
                               没有得到匹é…。
                       dirnames
                               进行目录å补全,如果 compspec 没有得到匹é…。
                       filenames
                               告诉                          readline,compspec
                               产生了文件å,使它å¯ä»¥è¿›è¡Œä»»ä½•文件å专用的处ç†
                               (例如,给目录ååŠ ä¸Šæ–œæ æˆ–消除尾部空白)。主è¦ç”¨äºŽ
                               shell 函数。
                       nospace 告诉                                    readline
                               ä¸è¦å‘补全的è¯åœ¨è¡Œçš„æœ€åŽæ·»åŠ ä¸€ä¸ªç©ºæ ¼
                               (这是默认行为)。
               -A action
                       action å¯ä»¥æ˜¯ä¸‹åˆ—之一,æ¥äº§ç”Ÿä¸€ç³»åˆ—å¯èƒ½çš„补全结果:
                       alias   起别å。也å¯ä»¥ç”¨ -a 指定。
                       arrayvar
                               数组å˜é‡å。
                       binding Readline 按键关è”。
                       builtin shell 内建命令的å称。也å¯ä»¥ç”¨ -b 指定。
                       command 命令å。也å¯ä»¥ç”¨ -c 指定。
                       directory
                               目录å。也å¯ä»¥ç”¨ -d 指定。
                       disabled
                               被ç¦ç”¨çš„内建命令å称。
                       enabled å¯ç”¨çš„内建命令å称。
                       export  被导出的 shell å˜é‡å称。也å¯ä»¥ç”¨ -e 指定。
                       file    文件å。也å¯ä»¥ç”¨ -f 指定。
                       function
                               shell 函数的å称。
                       group   组å。也å¯ä»¥ç”¨ -g 指定。
                       helptopic
                               内建命令 help 接å—的帮助主题。
                       hostname
                               主机å,从环境å˜é‡ HOSTFILE 指定的文件中得到。
                       job     作业å,如果作业控制被激活的è¯ã€‚也å¯ä»¥ç”¨      -j
                               指定。
                       keyword shell ä¿ç•™å­—。也å¯ä»¥ç”¨ -k 指定。
                       running 正在è¿è¡Œçš„作业å,如果作业控制被激活的è¯ã€‚
                       service æœåŠ¡å。也å¯ä»¥ç”¨ -s 指定。
                       setopt  内建命令 set çš„ -o é€‰é¡¹çš„æœ‰æ•ˆå‚æ•°ã€‚
                       shopt   内建命令 shopt 接å—çš„ shell 选项å。
                       signal  ä¿¡å·å。
                       stopped åœæ­¢çš„作业å,如果作业控制被激活的è¯ã€‚
                       user    用户å。也å¯ä»¥ç”¨ -u 指定。
                       variable
                               shell å˜é‡çš„å称。也å¯ä»¥ç”¨ -v 指定。
               -G globpat
                       æ–‡ä»¶åæ‰©å±•æ¨¡å¼ globpat 被扩展,产生å¯èƒ½çš„补全。
               -W wordlist
                       wordlist                   被使用                    IFS
                       特殊å˜é‡ä¸­çš„å­—ç¬¦ä½œä¸ºå®šç•Œç¬¦æ¥æ‹†åˆ†ï¼Œæ¯ä¸ªç»“果的è¯è¢«æ‰©å±•。å¯èƒ½çš„补全是结果列表
                       中匹é…è¦è¡¥å…¨çš„è¯çš„那一些。
               -C command
                       command                 å°†åœ¨ä¸€ä¸ªå­                 shell
                       环境中执行,它的结果用作å¯èƒ½çš„补全。
               -F function
                       shell       函数       function      å°†åœ¨å½“å‰      shell
                       çŽ¯å¢ƒä¸­æ‰§è¡Œã€‚å½“å®ƒç»“æŸæ—¶ï¼Œå¯èƒ½  的补全å¯ä»¥ä»Žæ•°ç»„元素  COM-
                       PREPLY 中得到。
               -X filterpat
                       filterpat
                       是一个模å¼ï¼Œç”¨äºŽæ–‡ä»¶å扩展。所有å‰é¢çš„é€‰é¡¹å’Œå‚æ•°äº§ç”Ÿ
                       çš„å¯èƒ½çš„补全都è¦ç«Ÿåº–å¾Šé…±æšæ³æ¡“銎ヅ      filterpat
                       的补全都   被从列表中删除。为   filterpat   加上å‰å¯¼   !
                       ä½¿æ¨¡å¼æ„义相åï¼›     è¿™ç§æƒ…况下,所有ä¸åŒ¹é…    filterpat
                       的模å¼è¢«åˆ é™¤ã€‚
               -P prefix
                       在所有其他选项都处ç†è¿‡ä¹‹åŽï¼Œprefix
                       被加到æ¯ä¸ªå¯èƒ½çš„补全å‰é¢ã€‚
               -S suffix
                       在所有其他选项都处ç†è¿‡ä¹‹åŽï¼Œsuffix
                       被加到æ¯ä¸ªå¯èƒ½çš„补全åŽé¢ã€‚
 
               返回值为真,除éžç»™å‡ºäº†éžæ³•的选项,给出除   -p   å’Œ    -r    之外
               çš„æŸä¸ªé€‰é¡¹æ—¶æ²¡æœ‰ç»™å‡º   name   傿•°ï¼Œè¯•å›¾åˆ é™¤ä¸€æ¡   name   的补全
               规则但是规则ä¸å­˜åœ¨ï¼Œæˆ–者添加补全规则时出错。
 
        continue [n]
               å¤ä½åˆ°å¤–层    for,    while,     until,     或     select     -
               环的下一次开始。如果指定了  n_å¤ä½åˆ°å‘外第  n 层鸦返目肌 n
               å¿…é¡»  >=  1。如果   n   比外部鸦返牟闶啵次åé˜¶é’”ç æ„•难环
               (``top-level''  loop,顶层鸦)。  返回值是  0ï¼Œé™¤éžæ‰§è¡Œ continue
               时,shell 䏿˜¯åœ¨é¸¦åˆ†å°
 
        declare [-afFirtx] [-p] [name[=value]]
        typeset [-afFirtx] [-p] [name[=value]]
               声明å˜é‡ä¸”/或设置它们的属性。如果没有给出 name  则显示å˜é‡çš„值。
               选项    -p    将显示æ¯ä¸ªåç§°    name    的属性和值。当使用    -p
               时,其他选项被忽略。选项                                      -F
               ç¦æ­¢æ˜¾ç¤ºå‡½æ•°å®šä¹‰ï¼›åªæœ‰å‡½æ•°å和属性会被显示。   -F  é€‰é¡¹æš—å«  -f.
               下列选项å¯ç”¨æ¥é™åˆ¶åªè¾“出具有指定属性的å˜é‡ï¼Œæˆ–者为å˜é‡è®¾ç½®å±žæ€§ï¼š
               -a     æ¯ä¸ª name 都是数组å˜é‡ (å‚è§ä¸Šé¢çš„ Arrays 段è½)。
               -f     åªä½¿ç”¨å‡½æ•°å。
               -i     å˜é‡è¢«å½“作一个整数;当å˜é‡è¢«èµ‹å€¼æ—¶å°†è¿›è¡Œç®—术è¿ç®—    (å‚è§
                                 值(ARITHMETIC EVALUATION) 章节)。
               -r     使得                                                 name
                      åªè¯»ã€‚这些åç§°ä¸èƒ½å†è¢«åŽç»­çš„赋值语å¥èµ‹å€¼æˆ–å–æ¶ˆå®šä¹‰ã€‚
               -t     设置æ¯ä¸ª  name  çš„  trace(跟踪)  属性。被跟踪的函数继承了
                      调用者       shell       的       DEBUG       陷阱。trace
                      属性对å˜é‡æ²¡æœ‰ç‰¹æ®Šæ„义。
               -x     标记 name 为å¯ä»¥é€šè¿‡çŽ¯å¢ƒå¯¼å‡ºç»™åŽç»­å‘½ä»¤ã€‚
 
               使用  `+'  代替  `-'  将关闭属性,特殊情况是 +a ä¸èƒ½ç”¨äºŽé”€æ¯ä¸€ä¸ª
               数组å˜é‡ã€‚当用于函数中时,它使得æ¯ä¸ª    name    æˆä¸ºå±€éƒ¨çš„,就åƒ
               使用了  local  命令。返回值是  0,除éžé‡åˆ°äº†éžæ³•的选项,试图使用
               ``-f                                                   foo=bar''
               定义函数,试图å‘åªè¯»å˜é‡èµ‹å€¼ï¼Œè¯•图呿•°ç»„å˜é‡èµ‹å€¼ä½†æ²¡æœ‰ä½¿ç”¨å¤åˆçš„赋值
               语法  (å‚è§ä¸Šé¢çš„  Arrays   段è½),name   之䏀䏿˜¯æœ‰æ•ˆçš„   shell
               å˜é‡å,试图将数组å˜é‡çš„æ•°ç»„     状æ€å…³é—­ï¼Œæˆ–者是试图使用     -f
               显示一个ä¸å­˜åœ¨çš„函数。
 
        dirs [-clpv] [+n] [-n]
               没有选项时显示当å‰ä¿å­˜çš„目录。默认输出为一行,目录å用空格分开。
               å¯ä»¥ä½¿ç”¨         pushd        命令将目录添加到列表,        popd
               命令将列表中的æ¡ç›®åˆ é™¤ã€‚
               +n     显示 dirs 在ä¸å¸¦é€‰é¡¹æ‰§è¡Œæ—¶æ˜¾ç¤ºçš„列表的第 n  个æ¡ç›®ï¼Œä»Ž  0
                      开始自左算起。
               -n     显示  dirs  在ä¸å¸¦é€‰é¡¹æ‰§è¡Œæ—¶æ˜¾ç¤ºçš„列表的第 n 个æ¡ç›®ï¼Œä»Ž 0
                      开始自å³ç®—起。
               -c     删除所有æ¡ç›®ï¼Œæ¸…空目录栈。
               -l     产生长列表;默认列表格å¼ä½¿ç”¨æ³¢æµªçº¿æ¥è¡¨ç¤ºä¸ªäººç›®å½•。
               -p     输出目录栈,一行一个。
               -v     输出目录栈,一行一个,æ¯ä¸ªæ¡ç›®å‰é¢åŠ ä¸Šå®ƒåœ¨æ ˆä¸­çš„ä½ç½®ç´¢å¼•。
 
               返回值是             0,除éžç»™å‡ºäº†éžæ³•çš„å‚æ•°ï¼Œæˆ–者             n
               索引超出了目录栈的范围。
 
        disown [-ar] [-h] [jobspec ...]
               没有选项时,æ¯ä¸ª jobspec  被从正在è¿è¡Œçš„作业表中删除。如果给出了
               -  选项,æ¯ä¸ª  jobspec  å¹¶ä¸ä»Žè¡¨ä¸­åˆ é™¤ï¼Œè€Œæ˜¯è¢«æ ‡è®°ï¼Œä½¿å¾—在 shell
               接到  SIGHUP  ä¿¡å·æ—¶ï¼Œä¸ä¼šå‘作业å‘出  SIGHUP  ä¿¡å·ã€‚如果没有给出
               jobspec_也没有给出  -a  或者 -r 选项,将使用当å‰ä½œä¸š (current
               job)。如果没有给出          jobspec_        选项           -a
               æ„味ç€åˆ é™¤æˆ–标记所有作业;选项       -r       ä¸å¸¦       jobspec
               傿•°æ—¶é™åˆ¶æ“作åªå¯¹æ­£åœ¨è¿è¡Œçš„作业进行。返回值是  0ï¼Œé™¤éž  jobspec
               䏿Œ‡å®šæœ‰æ•ˆçš„作业。
 
        echo [-neE] [arg ...]
               输出      arg,以空格分开,最åŽåŠ ä¸€ä¸ªæ–°è¡Œç¬¦ã€‚è¿”å›žå€¼æ€»æ˜¯      0。
               如果指定了   -n,将ä¸åœ¨å°¾éƒ¨æ·»åŠ æ–°è¡Œç¬¦ã€‚å¦‚æžœç»™å‡ºäº†   -e    选项,
               å°†å…è®¸è§£é‡Šä¸‹åˆ—åæ–œæ è½¬ä¹‰çš„字符。                              -E
               é€‰é¡¹ç¦æ­¢è¿™äº›è½¬ä¹‰å­—符的解释,å³ä½¿åœ¨é»˜è®¤è§£é‡Šå®ƒä»¬çš„系统中也是如此。
               shell   选项   xpg_echo   å¯ä»¥ç”¨æ¥åœ¨è¿è¡Œæ—¶åˆ¤æ–­   echo   是å¦é»˜è®¤
               展开这些转义字符。   echo   ä¸å°†   --   作为选项的结æŸã€‚    echo
               解释下列转义åºåˆ—:
               \a     alert (bell) å“铃
               \b     backspace 回退
               \c     suppress trailing newline 删除尾部新行符
               \e     an escape character 字符 Esc
               \f     form feed 进纸
               \n     new line 新行符
               \r     carriage return 回车
               \t     horizontal tab 水平跳格
               \v     vertical tab 竖直跳格
               \\     backslash åæ–œæ 
               \0nnn  一个八比特字符,它的值是八进制值                      nnn
                      (零到三个八进制数字)。
               \nnn   一个八比特字符,它的值是八进制值                      nnn
                      (一到三个八进制数字)。
               \xHH   一个八比特字符,它的值是å六进制值                     HH
                      (一到两个å六进制数字)。
 
        enable [-adnps] [-f filename] [name ...]
               å…è®¸æˆ–ç¦æ­¢                                                 shell
               å†…å»ºå‘½ä»¤ã€‚ç¦æ­¢ä¸€ä¸ªå†…建命令使得ç£ç›˜ä¸Šçš„与内建命令åŒå
               的文件得以è¿è¡Œï¼Œä¸å¿…使用它的全路径,å³ä½¿                   shell
               一般在æœç´¢ç£ç›˜ä¸Šçš„å‘½ä»¤ä¹‹å‰      æœç´¢å†…建命令。如果使用了      -n
               选项,æ¯ä¸ª name éƒ½è¢«ç¦æ­¢ï¼›å¦åˆ™ï¼Œ name 被å…许。例如,è¦ä½¿ç”¨  PATH
               中æœç´¢åˆ°çš„ test å‘½ä»¤è€Œä¸æ˜¯ shell 内建的那一个,å¯ä»¥è¿è¡Œ ``enable
               -n test''.  选项 -f æ„味ç€ä»Žå…±äº«åº“  filename  中加载新的内建命令
               name_  如果系统支æŒåЍæ€åŠ è½½çš„è¯ã€‚选项   -d   将删除曾居   -f
               加载的内建命令。如果没有给出    name     傿•°ï¼Œæˆ–者给出了     -p
               选项,将显示     shell    å†…å»ºå‘½ä»¤çš„åˆ—è¡¨ã€‚å¦‚æžœæ²¡æœ‰å…¶ä»–é€‰é¡¹å‚æ•°ï¼Œ
               这个列表åªåŒ…嫿‰€æœ‰è¢«å…许的      shell       内建命令;如果给出了
               -nï¼Œå°†åªæ˜¾ç¤ºè¢«ç¦æ­¢çš„内建命令;如果给出了
               -aï¼Œæ˜¾ç¤ºçš„åˆ—è¡¨ä¸­åŒ…å«æ‰€æœ‰å†…建命令,还有命令是å¦è¢«å…许的指示;
               如果给出了  -s,输出被é™åˆ¶ä¸º  POSIX  special 内建命令。 返回值是
               0ï¼Œé™¤éž              name               䏿˜¯               shell
               内建命令,或者从共享库中加载新的内建命令时出错。
 
        eval [arg ...]
               arg  被读å–并连结为å•一的命令。这个命令然åŽè¢« shell 读å–并执行,
               它的退出状æ€è¢«ä½œä¸º      eval      的值返回。如果没有      args,
               或仅仅包å«ç©ºå‚数, eval 返回 0。
 
        exec [-cl] [-a name] [command [arguments]]
               如果指定了  command_å®ƒå°†æ›¿æ¢  shell。ä¸ä¼šäº§ç”Ÿæ–°çš„进程。 argu-
               ments æˆä¸º command çš„å‚æ•°ã€‚如果给出了 -l 选项,shell  将在传递给
               command  的第  0  ä¸ªå‚æ•°å‰é¢åŠ ä¸Šä¸€ä¸ªè¿žå­—ç¬¦  (dash,`-')。这样åšå’Œ
               login(1)       相åŒã€‚选项       -c       使得命令        command
               在一个空环境中执行。如果给出了  -, shell  会将  name 作为第 0
               ä¸ªå‚æ•°ä¼ é€’ç»™è¦æ‰§è¡Œçš„命令。如果由于æŸç§ç ¸ as the zeroth argument
               to  the executed command.  If command ä¸èƒ½è¢«æ‰§è¡Œï¼Œéžäº¤äº’çš„ shell
               å°†é€€å‡ºï¼Œé™¤éž           shell            选项            execfail
               被设置为å…è®¸ï¼Œè¿™ç§æƒ…况下它返回失败。如果命令ä¸èƒ½æ‰§è¡Œï¼Œäº¤äº’çš„
               shell 返回失败。  如果没有指定  command  任何é‡å®šå‘å¯¹å½“å‰  shell
               å‘生作用,返回值是 0。如果å‘生é‡å®šå‘é”™è¯¯ï¼Œè¿”å›žçŠ¶æ€æ˜¯ 1。
 
        exit [n]
               使得      shell      以状æ€å€¼     n     退出。如果忽略了     n_
               é€€å‡ºçŠ¶æ€æ˜¯æœ€åŽæ‰§è¡Œçš„命令的退出状æ€ã€‚在  shell  终止å‰ï¼Œå¯¹   EXIT
               的陷阱将被执行。
 
        export [-fn] [name[=word]] ...
        export -p
               给出的åç§°                                                 names
               被标记为自动地导出到åŽç»­æ‰§è¡Œçš„命令的环境中。如果给出了        -f
               选项,åç§° names 指的是函数。如果没有给出 names或者如果给出了
               -p 选项,将打å°åœ¨è¿™ä¸ª  shell  中被导出的所有å字的列表。选项  -n
               使得以此为åçš„å˜é‡çš„导出属性被删除。         export         返回
               0,除éžé‡åˆ°äº†éžæ³•的选项,name  之䏀䏿˜¯æœ‰æ•ˆçš„   shell   å˜é‡å,
               或者给出了 -f 选项,而 name 䏿˜¯ä¸€ä¸ªå‡½æ•°ã€‚
 
        fc [-e ename] [-nlr] [first] [last]
        fc -s [pat=rep] [cmd]
               命令修å¤ã€‚第一ç§å½¢å¼ä¸­ï¼Œåކå²åˆ—表中从      first      到     last
               范围内的命令都被选å–。   First    å’Œ    last    å¯ä»¥æŒ‡å®šä¸ºå­—符串
               (å¯ä»¥å®šä½æœ€åŽä¸€ä¸ªä»¥æ­¤å­—符串开始的命令)    或者数字   (历å²åˆ—表中
               的索引,负数被当作相对当å‰å‘½ä»¤å·çš„åç§»)。如果没有指定     last_
               它在列举时被设为当å‰å‘½ä»¤  (å› æ­¤  ``fc  -l  -10''  å°†è¾“å‡ºæœ€åŽ  10
               æ¡å‘½ä»¤),其他情况下被设为 first如果没有指定 first_它在编-
               时被设为å‰ä¸€ä¸ªå‘½ä»¤ï¼Œåˆ—举是设为 -16。
 
               选项         -n         ä½¿å¾—åˆ—ä¸¾æ—¶ä¸æ˜¾ç¤ºå‘½ä»¤å·ç ã€‚选项        -r
               将命令顺åºè¿›è¡ŒæŽ‰æ¢ã€‚如果给出了                                -l
               选项,命令将列举在标准输出上。å¦åˆ™ï¼Œå°†å¯åЍ    ename   给出的编-
               器,编åŠåº‘┟畹奈募。如果没有给出    ename_  将使用å˜é‡
               FCEDIT      的值,如果      FCEDIT     没有定义就使用     EDITOR
               的值。如果ä»ç„¶æ²¡æœ‰å®šä¹‰ï¼Œå°†ä½¿ç”¨      vi_     编冀崾螅æ§å—‰-
               的命令将回显并执行。
 
               第二ç§å½¢å¼ä¸­ï¼Œcommand    在æ¯ä¸ª    pat   的实例被   rep   替æ¢åŽ
               éƒ½è¢«é‡æ–°æ‰§è¡Œã€‚使用这ç§ç‰¹æ€§æ—¶å¯ä»¥èµ·ä¸€ä¸ªæœ‰ç”¨çš„别å: ``r=fc  -s'',
               这样输入  ``r  cc'' å°†è¿è¡Œæœ€åŽçš„以 ``cc'' 开头的命令,输入 ``r''
               将釿–°æ‰§è¡Œä¸Šä¸€ä¸ªå‘½ä»¤ã€‚
 
               如果使用第一ç§å½¢å¼ï¼Œè¿”回值是  0,除éžé‡åˆ°äº†éžæ³•的选项,或  first
               或       last       指定的历å²è¡Œæ•°è¶…出了范围。如果给出了      -e
               é€‰é¡¹ï¼Œè¿”å›žå€¼æ˜¯æœ€åŽæ‰§è¡Œçš„å‘½ä»¤çš„è¿”å›žå€¼ï¼Œæˆ–ç€æ˜¯å¤±è´¥ï¼Œå¦‚果临时文件中的命令
               执行出错。如果使用第二ç§å½¢å¼ï¼Œè¿”å›žçŠ¶æ€æ˜¯é‡æ–°æ‰§è¡Œçš„å‘½ä»¤ï¼Œé™¤éž cmd
               没有指定一个有效的历å²è¡Œï¼Œè¿™ç§æƒ…况下 fc 返回失败。
 
        fg [jobspec]
               å°†    jobspec     æ¢å¤è‡³å‰å°ï¼Œä½¿å®ƒæˆä¸ºå½“å‰ä½œä¸šã€‚如果     jobspec
               ä¸å­˜åœ¨ï¼Œå°†ä½¿ç”¨   shell  æ„义上的当å‰ä½œä¸š  current  job。返回值是
               被放到å‰å°çš„命令的状æ€ï¼Œæˆ–者是失败,如果在ç¦ç”¨ä½œä¸šæŽ§åˆ¶æ—¶è¿è¡Œï¼Œæˆ–者
               在å¯ç”¨ä½œä¸šæŽ§åˆ¶æ—¶è¿è¡Œï¼Œä½†  jobspec 没有指定有效的作业,或 jobspec
               指定了没有使用作业控制的作业。
 
        getopts optstring name [args]
               getopts    ç”±     shell     程åºç”¨æ¥å¤„ç†ä½ç½®å‚数。     optstring
               包å«è¦è¯†åˆ«çš„选项字符;如果æŸä¸ªå­—符跟éšç€å†’å·ï¼Œé‚£ä¹ˆè¿™ä¸ªé€‰é¡¹éœ€è¦ä¸€ä¸ªå‚数,
               需è¦ç”¨ç©ºç™½å’Œå®ƒéš”离开。冒å·å’Œé—®å·å­—符ä¸èƒ½ç”¨ä½œé€‰é¡¹å­—ç¬¦ã€‚æ¯æ¬¡å®ƒæ‰§è¡Œæ—¶ï¼Œ
               getopts   将下一个选项放在   shell   å˜é‡   name  中,如果  name
               ä¸å­˜åœ¨å°±åˆå§‹åŒ–它;下一个è¦å¤„ç†çš„傿•°çš„索引放在å˜é‡        OPTIND
               ä¸­ã€‚æ¯æ¬¡  shell  或  shell  脚本被执行的时候  OPTIND  被åˆå§‹åŒ–为
               1。当æŸä¸ªé€‰é¡¹éœ€è¦å‚数时,  getopts   å°†é‚£ä¸ªå‚æ•°æ”¾åˆ°å˜é‡   OPTARG
               中。shell      ä¸ä¼šè‡ªåЍé‡ç½®      OPTINï¼›    在相åŒçš„     shell
               中,如果è¦ä½¿ç”¨æ–°çš„傿•°é›†åˆè€Œéœ€è¦å¤šæ¬¡è°ƒç”¨                 getopts
               时,必须手动é‡ç½®å®ƒã€‚
 
               当é‡åˆ°é€‰é¡¹ç»“æŸçš„æ—¶å€™ï¼Œgetopts   以大于   0   的值退出。   OPTIND
               被设置为第一个éžé€‰é¡¹çš„傿•°çš„索引,name 被设置为 ?。
 
               getopts   通常解释ä½ç½®å‚数,但是如果   args   ä¸­ç»™å‡ºäº†æ›´å¤šå‚æ•°ï¼Œ
               getopts 将解释它们。
 
               getopts           èƒ½ä»¥ä¸¤ç§æ–¹å¼æŠ¥å‘Šé”™è¯¯ã€‚如果           optstring
               的第一个字符是冒å·ï¼Œå°†ä½¿ç”¨                                silent
               安é™çš„错误报告。通常的æ“作中,é‡åˆ°éžæ³•é€‰é¡¹æˆ–ç¼ºå°‘é€‰é¡¹çš„å‚æ•°æ—¶å°†æ‰“å°å‡º
               诊断信æ¯ã€‚如果å˜é‡  OPTERR  被设置为   0,ä¸ä¼šæ˜¾ç¤ºé”™è¯¯æ¶ˆæ¯ï¼Œå³ä½¿
               optstring çš„ç¬¬ä¸€ä¸ªå­—ç¬¦ä¸æ˜¯å†’å·ã€‚
 
               如果å‘çŽ°äº†ä¸€ä¸ªéžæ³•的选项,     getopts     å‘     name    中置入
               ?ï¼Œå¹¶ä¸”å¦‚æžœä¸æ˜¯å®‰é™æ¨¡å¼çš„è¯ï¼Œæ‰“å°é”™è¯¯æ¶ˆæ¯å¹¶å–消           OPTARG
               的定义。如果  getopts  æ˜¯å®‰é™æ¨¡å¼ï¼Œæ‰¾åˆ°çš„选项字符将置入 OPTAR,
               ä¸ä¼šæ‰“å°è¯Šæ–­æ¶ˆæ¯ã€‚
 
               如果没有找到需è¦çš„傿•°ï¼Œå¹¶ä¸”  getopts  䏿˜¯å®‰é™æ¨¡å¼ï¼Œå°†å‘   name
               ç½®å…¥ä¸€ä¸ªé—®å·   (?)ï¼Œå–æ¶ˆ   OPTARG   的定义,打å°å‡ºè¯Šæ–­æ¶ˆæ¯ã€‚如果
               getopts æ˜¯å®‰é™æ¨¡å¼ï¼Œé‚£ä¹ˆå°†å‘ name ç½®å…¥ä¸€ä¸ªå†’å· (:)  并且  OPTARG
               将设置为找到的选项字符。
 
               getopts
               返回真,如果找到了指定的/未被指定的选项。它返回å‡ï¼Œå¦‚æžœé‡åˆ°äº†é€‰é¡¹ç»“æŸ
               或者å‘生了错误。
 
        hash [-lr] [-p filename] [-dt] [name]
               对于æ¯ä¸ª             name,             通过æœç´¢            $PATH
               中的目录,找到命令的全路径å并记录它。如果给出了              -p
               选项,ä¸ä¼šè¿›è¡Œè·¯å¾„æœç´¢ï¼Œç›´æŽ¥å°† filename 作为命令的全路径å。选项
               -r  使得  shell   忘记所有已记录的ä½ç½®ã€‚选项   -d   使得   shell
               忘记已记录的   name   çš„ä½ç½®ã€‚如果给出了   -t   选项,æ¯ä¸ª  name
               对应的全路径å被打å°å‡ºæ¥ã€‚如果给出多个 name 作为 -t çš„å‚æ•°ï¼Œname
               å°†åœ¨å·²è®°å½•çš„å…¨è·¯å¾„å           之å‰è¢«æ‰“å°å‡ºæ¥ã€‚选项           -l
               使得输出以一ç§å¯ä»¥é‡ç”¨ä¸ºè¾“å…¥çš„æ ¼å¼æ˜¾ç¤ºã€‚å¦‚æžœæ²¡æœ‰ç»™å‡ºå‚æ•°ï¼Œ
               或者åªç»™å‡ºäº†      -l      选项,已记录的命令的信æ¯å°†è¢«æ‰“å°å‡ºæ¥ã€‚
               è¿”å›žçœŸï¼Œé™¤éž name æ²¡æœ‰æ‰¾åˆ°æˆ–ç»™å‡ºäº†éžæ³•的选项。
 
        help [-s] [pattern]
               显示关于内建命令的有用的信æ¯ã€‚如果指定了 pattern  (     )_help
               ç»™å‡ºå…³äºŽæ‰€æœ‰åŒ¹é…                                         pattern
               的命令的详细帮助;å¦åˆ™æ‰€æœ‰å†…建命令的帮助和                 shell
               控制结构将被打å°å‡ºæ¥ã€‚  选项  -s  é™åˆ¶ä¿¡æ¯æ˜¾ç¤ºä¸ºç®€çŸ­çš„用法概è¦ã€‚
               返回 0ï¼Œé™¤éžæ²¡æœ‰åŒ¹é… pattern 的命令。
 
        history [n]
        history -c
        history -d offset
        history -anrw [filename]
        history -p arg [arg ...]
        history -s arg [arg ...]
               ä¸å¸¦é€‰é¡¹çš„è¯ï¼Œæ˜¾ç¤ºå¸¦è¡Œå·çš„命令历å²åˆ—è¡¨ã€‚åˆ—å‡ºçš„è¡Œä¸­å«æœ‰ *  的已-
               è¢«ä¿®æ”¹è¿‡ã€‚å‚æ•°   n   ä½¿å¾—åªæ˜¾ç¤ºæœ€åŽ   n   行。如果给出了   file-
               name,它被用åšåކ岿–‡ä»¶å;没有的è¯ï¼Œå°†ä½¿ç”¨              HISTFILE
               çš„å€¼ä½œä¸ºåŽ†å²æ–‡ä»¶å。选项如果给出,则具有下列æ„义:
               -c     清空历å²åˆ—表,删除所有æ¡ç›®ã€‚
               -d offset
                      删除 offset ä½ç½®çš„åŽ†å²æ¡ç›®ã€‚
               -a     å°† ``æ–°'' çš„åŽ†å²æ¡ç›® (è‡ªå½“å‰ bash 会è¯å¼€å§‹è¾“入的历å²å‘½ä»¤)
                      è¿½åŠ åˆ°åŽ†å²æ–‡ä»¶ä¸­ã€‚
               -n     å°†å°šæœªä»ŽåŽ†å²æ–‡ä»¶ä¸­è¯»å–çš„åŽ†å²æ¡ç›®è¯»å…¥å½“å‰åކå²åˆ—表。这些行是当å‰
                      bash 会è¯å¼€å§‹ä¹‹åŽï¼Œæ‰è¿½åŠ åˆ°åŽ†å²æ–‡ä»¶ä¸­çš„行。
               -r     读å–åŽ†å²æ–‡ä»¶çš„内容,使用它们作为当å‰åކå²ã€‚
               -w     将当å‰åކå²åˆ—è¡¨å†™å…¥åŽ†å²æ–‡ä»¶ï¼Œè¦†ç›–åŽ†å²æ–‡ä»¶çš„æ‚å¿ƒè°Œè¨
               -p     对åŽç»­çš„     args    è¿›è¡ŒåŽ†å²æ›¿æ¢ï¼Œåœ¨æ ‡å‡†è¾“出上显示结果。
                      ä¸ä¼šå°†ç»“果存入历å²åˆ—表。æ¯ä¸ª  args   都必须被引用,æ¥ç¦æ­¢
                      普通的命令扩展。
               -s     å°†                                                   args
                      ä¿å­˜åˆ°åކå²åˆ—表中,作为å•独的æ¡ç›®ã€‚历å²åˆ—表中的最åŽä¸€ä¸ªå‘½ä»¤åœ¨æ·»åŠ 
                      args 之å‰è¢«åˆ é™¤ã€‚
 
               返回  0,除éžé‡åˆ°äº†éžæ³•的选项,读/å†™åŽ†å²æ–‡ä»¶å‘生错误,在  -d  çš„
               傿•°ä¸­ç»™å‡ºäº†æ— æ•ˆçš„               offset,或者对               -p
               çš„åŽç»­å‚æ•°è¿›è¡ŒåŽ†å²æ‰©å±•失败。
 
        jobs [-lnprs] [ jobspec ... ]
        jobs -x command [ args ... ]
               第一ç§å½¢å¼åˆ—出正在è¿è¡Œçš„作业。选项具有下列æ„义:
               -l     普通信æ¯ä¹‹å¤–,列出进程ID。
               -p     åªåˆ—出作业的进程组 leader 的进程ID。
               -n     åªæ˜¾ç¤ºä»Žä¸Šæ¬¡ç”¨æˆ·å¾—知它们的状æ€ä¹‹åŽï¼Œçжæ€å‘生改å˜çš„作业的信æ¯ã€‚
               -r     é™åˆ¶åªè¾“出正在è¿è¡Œçš„作业。
               -s     é™åˆ¶åªè¾“å‡ºåœæ­¢çš„作业。
 
               如果给出了     jobspec     输出被é™åˆ¶ä¸ºä»…此作业的信æ¯ã€‚     返回
               0,除éžé‡åˆ°äº†éžæ³•çš„é€‰é¡¹æˆ–ç»™å‡ºäº†éžæ³•çš„ jobspec_
 
               如果给出了  -x  选项,作业 jobs 将 command 或 args 中的任何 job-
               spec   替æ¢ä¸ºç›¸åº”的进程组ID,执行   command_ 传递傿•°    args
               给它并返回它的退出状æ€ã€‚
 
        kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
        kill -l [sigspec | exit_status]
               å‘以   pid  或  jobspec  为å的进程å‘é€å为  sigspec  或  signum
               的信å·ã€‚ sigspec å¯ä»¥æ˜¯ä¸€ä¸ªä¿¡å·å称,类似  SIGKILL  或信å·ç¼–å·ï¼›
               signum                是一个信å·ç¼–å·ã€‚如果               sigspec
               是一个信å·å称,那么å¯ä»¥æœ‰ï¼Œä¹Ÿå¯ä»¥æ²¡æœ‰  SIG   å‰ç¼€ã€‚如果没有给出
               sigspec_      那么å‡è®¾æ˜¯        SIGTER。      傿•°       -l
               将列出所有信å·çš„å称。如果给出                                -l
               æ—¶è¿˜æœ‰ä»»ä½•å‚æ•°ï¼Œå°†åˆ—å‡ºå‚æ•°å¯¹åº”的信å·åç§°ï¼Œè¿”å›žçŠ¶æ€   0。  -l  çš„
               exit_status           傿•°æ˜¯ä¸€ä¸ªæ•°å­—,指定了一个信å·ç¼–å·æˆ–被信å·
               终止的进程的退出状æ€å€¼ã€‚                                    kill
               返回真,如果至少æˆåŠŸå‘é€äº†ä¸€ä¸ªä¿¡å·ï¼Œæˆ–者返回å‡ï¼Œå¦‚æžœå‘生了错误或é‡åˆ°äº†
               éžæ³•的选项。
 
        let arg [arg ...]
               æ¯ä¸ª arg éƒ½æ˜¯è¦æ±‚å€¼çš„ç®—æœ¯è¡¨è¾¾å¼ (å‚è§            值(ARITHMETIC EVAL-
               UATION) 章节)。如果最åŽä¸€ä¸ªå‚æ•°  arg  求值结果是  0,  let  返回
               1ï¼›å¦åˆ™è¿”回 0。
 
        local [option] [name[=value] ...]
               对æ¯ä¸ªå‚数将创建一个å为  name 的局部å˜é‡å¹¶èµ‹äºˆå€¼ valueoption
               å¯ä»¥æ˜¯ä»»ä½• declare 接å—的值。当 local 用于函数内部时,它使得å˜é‡
               name      作用域局é™äºŽå‡½æ•°å’Œå®ƒçš„å­è¿›ç¨‹ã€‚没有æ“作数时,     local
               将局部å˜é‡çš„列表写到标准输出。ä¸åœ¨å‡½æ•°å†…部使用             local
               会导致出错。返回  0,除éžåœ¨å‡½æ•°ä¹‹å¤–使用了  loca, ç»™å‡ºäº†éžæ³•çš„
               name或者 name 是一个åªè¯»çš„å˜é‡ã€‚
 
        logout 退出登录 shell。
 
        popd [-n] [+n] [-n]
               从目录栈中删除æ¡ç›®ã€‚æ²¡æœ‰å‚æ•°çš„è¯ï¼Œä»Žæ ˆä¸­åˆ é™¤é¡¶å±‚目录,执行    cd
               切æ¢åˆ°æ–°çš„é¡¶å±‚ç›®å½•ã€‚å¦‚æžœç»™å‡ºäº†å‚æ•°ï¼Œæœ‰ä¸‹åˆ—çš„å«ä¹‰ï¼š
               +n     删除   dirs   给出的列表中从左数第   n   个æ¡ç›®   (从   0
                      算起)。例如: ``popd +0''  删除第一个目录,  ``popd  +1''
                      第二个。
               -n     删除   dirs   ç»™å‡ºçš„åˆ—è¡¨ä¸­ä»Žå³æ•°ç¬¬   n   个æ¡ç›®   (从   0
                      ç®—èµ·)。例如: ``popd -0'' 删除最åŽä¸€ä¸ªç›®å½•, ``popd  -1''
                      删除倒数第二个。
               -n     é˜»æ­¢ä»Žæ ˆä¸­åˆ é™¤ç›®å½•ä¹‹åŽæ”¹å˜ç›®å½•,这时åªå¯¹æ ˆè¿›è¡Œæ“作。
 
               如果命令   popd   æˆåŠŸï¼Œè¿˜è¦æ‰§è¡Œä¸€ä¸ª   dir,  返回   0。  popd
               返回å‡ï¼Œå¦‚æžœé‡åˆ°äº†éžæ³•的选项,目录栈为空,指定了目录栈中ä¸å­˜åœ¨çš„æ¡ç›®ï¼Œ
               或者改å˜ç›®å½•失败。
 
        printf format [arguments]
               在   format  控制下将格å¼åŒ–çš„  arguments  写到标准输出。  format
               是一个字符串,包å«ä¸‰ç§ç±»åž‹çš„对象:普通字符,被简å•地
               å¤åˆ¶åˆ°æ ‡å‡†è¾“出,转义字符,被转æ¢å¹¶å¤åˆ¶åˆ°æ ‡å‡†è¾“出,格å¼è¯´æ˜Žï¼Œæ¯ä¸€ä¸ª
               都使得相邻的下一个  argument  被打å°å‡ºæ¥ã€‚  在标准的   printf(1)
               æ ¼å¼ä¹‹å¤–,%b       使得      printf      展开相应      arguments
               ä¸­çš„åæ–œæ è½¬ä¹‰åºåˆ—,%q   使得   printf   å°†   相应的    argument
               以一ç§å¯ä»¥é‡ç”¨ä¸º shell 输入的格å¼è¾“出。
 
               format   åœ¨éœ€è¦æ—¶è¢«é‡ç”¨ï¼Œä»¥å¤„ç†æ‰€æœ‰çš„  arguments。  如果  format
               éœ€è¦æ¯”所æä¾›çš„æ›´å¤šçš„     arguments,      多出的格å¼è¯´æ˜Žè§†ä¸ºå·²-
               æä¾›äº†ç›¸åº”çš„  0  值或空字符串。 æˆåŠŸçš„è¯è¿”回值是 0ï¼Œå¤±è´¥åˆ™æ˜¯éž 0
               值。
 
        pushd [-n] [dir]
        pushd [-n] [+n] [-n]
               å°†ç›®å½•æŽ¨å…¥ç›®å½•æ ˆï¼Œæˆ–è€…è½®æ¢æ ˆä¸­çš„内容,使栈的顶部æˆä¸ºå½“å‰å·¥ä½œç›®å½•。
               æ²¡æœ‰å‚æ•°æ—¶ï¼Œäº¤æ¢é¡¶éƒ¨ä¸¤ä¸ªç›®å½•,返回
               0,除éžç›®å½•æ ˆä¸ºç©ºã€‚å¦‚æžœç»™å‡ºäº†å‚æ•°ï¼Œ 它们有如下å«ä¹‰ï¼š
               +n     è½®æ¢æ ˆä¸­å†…容,使得 dirs 给出的列表中从左数第 n 个目录 (从
                      0 æ•°èµ·) æˆä¸ºç›®å½•栈的顶部。
               -n     è½®æ¢æ ˆä¸­å†…容,使得 dirs ç»™å‡ºçš„åˆ—è¡¨ä¸­ä»Žå³æ•°ç¬¬ n 个目录 (从
                      0 æ•°èµ·) æˆä¸ºç›®å½•栈的顶部。
               -n     é˜»æ­¢å‘æ ˆä¸­æ·»åŠ ç›®å½•ä¹‹åŽæ”¹å˜ç›®å½•,这时åªå¯¹æ ˆè¿›è¡Œæ“作。
               dir    添加 dir 到栈顶,使得它æˆä¸ºæ–°çš„当å‰å·¥ä½œç›®å½•。
 
               如果命令 pushd  æˆåŠŸï¼Œè¿˜è¦æ‰§è¡Œä¸€ä¸ª  dir。 如果使用第一ç§å½¢å¼ï¼Œ
               pushd  返回  0ï¼Œé™¤éž  cd 切æ¢åˆ°ç›®å½• dir å¤±è´¥ã€‚ä½¿ç”¨ç¬¬äºŒä¸­å½¢å¼æ—¶ï¼Œ
               pushd  返回  0,除éžç›®å½•栈为空,指定了目录栈中ä¸å­˜åœ¨çš„元素,或者
               切æ¢åˆ°æŒ‡å®šçš„æ–°çš„当å‰ç›®å½•失败。
 
        pwd [-LP]
               打å°å½“å‰å·¥ä½œç›®å½•çš„ç»å¯¹è·¯å¾„å。如果给出了                      -P
               选项,或者设置了内建命令      set      的      -o       physical
               选项,打å°å‡ºçš„路径å中ä¸ä¼šåŒ…å«ç¬¦å·é“¾æŽ¥ã€‚如果使用了            -L
               选项,打å°å‡ºçš„路径中å¯èƒ½åŒ…å«ç¬¦å·é“¾æŽ¥ã€‚                      返回
               0,除éžåœ¨è¯»å–当å‰ç›®å½•åæ—¶å‡ºé”™æˆ–ç»™å‡ºäº†éžæ³•的选项。
 
        read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d
        delim] [name ...]
               从标准输入读入一行,或从  -u  é€‰é¡¹çš„å‚æ•°ä¸­ç»™å‡ºçš„æ–‡ä»¶æè¿°ç¬¦ fd 中
               读å–,第一个è¯è¢«èµ‹äºˆç¬¬ä¸€ä¸ª  name,   第二个è¯è¢«èµ‹äºˆç¬¬äºŒä¸ª   name,
               以此类推,多余的è¯å’Œå…¶é—´çš„分隔符被赋予最åŽä¸€ä¸ª             name.
               如果从输入æµè¯»å…¥çš„è¯æ•°æ¯”å称数少,剩余的å称被赋予空值。     IFS
               中的字符被用æ¥å°†è¡Œæ‹†åˆ†æˆè¯ã€‚            åæ–œæ å­—符           (\)
               被用于删除读å–的下一字符的特殊å«ä¹‰ï¼Œä»¥åŠç»­è¡Œã€‚
               如果给出了选项,将包å«ä¸‹åˆ—å«ä¹‰ï¼š
               -a aname
                      è¯è¢«èµ‹ä»¥æ•°ç»„å˜é‡       aname      的连续的下标,从      0
                      开始。在赋新值之å‰ï¼Œ    aname    è¢«å–æ¶ˆå®šä¹‰ã€‚å…¶ä»–    name
                      傿•°è¢«å¿½ç•¥ã€‚
               -d delim
                      delim 的第一个字符被用于结æŸè¾“å…¥è¡Œï¼Œè€Œä¸æ˜¯æ–°è¡Œç¬¦ã€‚
               -e     如果标准输入æ¥è‡ªç»ˆç«¯ï¼Œå°†ä½¿ç”¨  readline  (å‚è§ä¸Šé¢çš„ READ-
                      LINE 章节) æ¥èŽ·å¾—è¾“å…¥è¡Œã€‚
               -n nchars
                      read 读入 nchars 个字符åŽè¿”å›žï¼Œè€Œä¸æ˜¯ç­‰å¾…一整行输入。
               -p prompt
                      读å–任何输入之å‰ï¼Œåœ¨æ ‡å‡†é”™è¯¯æ˜¾ç¤ºæç¤º
                      prompt,末尾没有新行符。
                      æç¤ºåªæœ‰åœ¨è¾“å…¥æ¥è‡ªç»ˆç«¯æ—¶æ‰ä¼šæ˜¾ç¤ºã€‚
               -r     åæ–œæ ä¸ä½œä¸ºè½¬ä¹‰å­—ç¬¦ã€‚åæ–œæ è¢«è®¤ä¸ºè¡Œçš„ä¸€éƒ¨åˆ†ã€‚ç‰¹æ®Šåœ°ï¼Œä¸€å¯¹åæ–œæ -新行符ä¸ä½œä¸ºç»­è¡Œã€‚
               -s     安陿¨¡å¼ã€‚如果输入æ¥è‡ªç»ˆç«¯ï¼Œå­—符将ä¸ä¼šå›žæ˜¾ã€‚
               -t timeout
                      使得       read       超时并返回失败,如果在      timeout
                      秒内没有读入完整的一行输入。          如果           read
                      䏿˜¯ä»Žç»ˆç«¯æˆ–管é“读å–输入,那么这个选项无效。
               -u fd  从文件æè¿°ç¬¦ fd 中读å–输入。
 
               如果没有给出   names_ 读å–的一行将赋予å˜é‡  REPLY。  返回值是
               0,除éžé‡åˆ°äº† EOF,readP                                                     -u
                          
 
        readonly [-apf] [name ...]
               给出的           name          将被标记为åªè¯»çš„ï¼›          names
               的值ä¸èƒ½è¢«åŽæ¥çš„èµ‹å€¼è¯­å¥æ”¹å˜ã€‚如果给出了     -f      选项,names
               对应的函数也被标记。选项 -a é™åˆ¶å˜é‡åªèƒ½æ˜¯æ•°ç»„类型。如果没有给出
               name 傿•°ï¼Œæˆ–者如果给出了 -p é€‰é¡¹ï¼Œå°†æ‰“å°æ‰€æœ‰åªè¯»çš„å称。选项 -p
               使得输出以一ç§å¯ä»¥è¢«é‡æ–°ç”¨ä½œè¾“å…¥çš„æ ¼å¼æ˜¾ç¤ºã€‚            返回值是
               0,除éžé‡åˆ°äº†éžæ³•的选项,     names     之䏀䏿˜¯æœ‰æ•ˆçš„     shell
               å˜é‡å,或选项 -f 中给出的 name 䏿˜¯ä¸€ä¸ªå‡½æ•°ã€‚
 
        return [n]
               使得一个函数以指定值        n        退出。如果忽略了        n_
               è¿”å›žçŠ¶æ€æ˜¯å‡½æ•°ä½“中执行的最åŽä¸€ä¸ªå‘½ä»¤çš„退出状æ€ã€‚如果在函数外使用,但是是在一个以
               .   (source) 命令执行的脚本内,它使得 shell 中止执行脚本,返回 n
               或脚本中执行的最åŽä¸€ä¸ªå‘½ä»¤çš„退出状æ€ã€‚å¦‚æžœåœ¨å‡½æ•°å¤–ä½¿ç”¨ï¼Œå¹¶ä¸”ä¸æ˜¯åœ¨ä»¥
               . æ‰§è¡Œçš„è„šæœ¬å†…ï¼Œè¿”å›žçŠ¶æ€æ˜¯å‡ã€‚
 
        set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
               ä¸å¸¦é€‰é¡¹æ—¶ï¼Œshell
               å˜é‡çš„å称和值将以一ç§å¯ä»¥é‡ç”¨ä¸ºè¾“å…¥çš„æ ¼å¼æ˜¾ç¤ºã€‚
               输出根æ®å½“å‰è¯­è¨€çŽ¯å¢ƒè¿›è¡ŒæŽ’åºã€‚æŒ‡å®šäº†é€‰é¡¹çš„æ—¶å€™ï¼Œå®ƒä»¬è®¾ç½®æˆ–å–æ¶ˆäº†
               shell                                                   的属性。
               处ç†å®Œé€‰é¡¹ä¹‹åŽå‰©ä½™çš„任何傿•°éƒ½è¢«ä½œä¸ºä½ç½®å‚数的值被赋值,分别赋予
               $1, $2, ...  $n.  如果给出了选项,那么具有以下å«ä¹‰ï¼š
               -a      自动将被修改或创建的å˜é‡å’Œå‡½æ•°æ ‡å¿—为导出至åŽç»­å‘½ä»¤çš„环境中。
               -b      åŽå°ä½œä¸šç»“æŸæ—¶ç«‹å³æŠ¥å‘Šçжæ€ï¼Œè€Œä¸æ˜¯åœ¨ä¸‹æ¬¡æ˜¾ç¤ºä¸»æç¤ºç¬¦å‰æŠ¥å‘Šã€‚åªæœ‰åœ¨å¯ç”¨ä½œä¸šæŽ§åˆ¶æ—¶æ‰æœ‰æ•ˆã€‚
               -e      ç«‹å³é€€å‡ºï¼Œå¦‚æžœ  simple   command   (简å•命令,å‚è§ä¸Šé¢çš„
                       SHELL       GRAMMAR            )      以éžé›¶å€¼é€€å‡ºã€‚shell
                       ä¸ä¼šé€€å‡ºï¼Œå¦‚果失败的命令是 until 或 while  鸦返囊徊糠郑
                       if         语å¥çš„一部分,         &&        或        ||
                       åºåˆ—的一部分,或者命令的返回值是由 !  纷玫å¥ï¼µæ”µ  ERR
                       的陷阱,如果设置的è¯ï¼Œå°†åœ¨ shell é€€å‡ºå‰æ‰§è¡Œã€‚
               -f      ç¦æ­¢è·¯å¾„扩展。
               -h      在查找并执行命令时,记ä½å®ƒä»¬çš„ä½ç½®ã€‚这是默认å¯ç”¨çš„。
               -k      所有以赋值语å¥å½¢å¼å‡ºçŽ°çš„å‚æ•°éƒ½è¢«åŠ å…¥åˆ°å‘½ä»¤æ‰§è¡Œçš„çŽ¯å¢ƒä¸­ï¼Œä¸ä»…是命令åå‰é¢é‚£äº›ã€‚
               -m      监视模å¼ã€‚作业控制被å¯ç”¨ã€‚在支æŒè¿™ä¸ªé€‰é¡¹çš„系统中,它在交互
                       shell 中是默认å¯ç”¨çš„ (å‚è§ä¸Šé¢çš„ JOB CONTROL                 
                       åŽå°è¿›ç¨‹åœ¨å•独的进程组中è¿è¡Œï¼Œç»“æŸæ—¶å°†æ‰“å°å‡ºåŒ…å«å®ƒä»¬é€€å‡ºçжæ€çš„一行信æ¯ã€‚
               -n      读å–å‘½ä»¤ï¼Œä½†ä¸æ‰§è¡Œã€‚è¿™å¯ä»¥ç”¨åœ¨æ£€æŸ¥                 shell
                       脚本中的语法错误。交互 shell 中它被忽略。
               -o option-name
                       option-name å¯ä»¥æ˜¯å¦‚下之一:
                       allexport
                               与 -a 相åŒã€‚
                       braceexpand
                               与 -B 相åŒã€‚
                       emacs   使用  emacs  æ ·å¼çš„命令行编冀缑妗U飧鲅∠钤诮æ¢
                               shell   中默认å¯ç”¨ï¼Œé™¤éž  shell  以  --noediting
                               选项å¯åŠ¨ã€‚
                       errexit 与 -e 相åŒã€‚
                       hashall 与 -h 相åŒã€‚
                       histexpand
                               与 -H 相åŒã€‚
                       history å…许记录命令历å²ï¼Œå¦‚上述                 HISTORY
                               中的æè¿°ã€‚这个选项在交互 shell 中默认å¯ç”¨ã€‚
                       ignoreeof
                               它的效果是好åƒå·²å±€è‘±è¾›        shell        命令
                               ``IGNOREEOF=10'' 一样  (å‚è§ä¸Šé¢çš„  Shell  Vari-
                               ables         
                       keyword 与 -k 相åŒã€‚
                       monitor 与 -m 相åŒã€‚
                       noclobber
                               与 -C 相åŒã€‚
                       noexec  与 -n 相åŒã€‚
                       noglob  与 -f 相åŒã€‚ nolog 当å‰è¢«å¿½ç•¥ã€‚
                       notify  与 -b 相åŒã€‚
                       nounset 与 -u 相åŒã€‚
                       onecmd  与 -t 相åŒã€‚
                       physical
                               与 -P 相åŒã€‚
                       posix   如果默认æ“作与  POSIX 1003.2 ä¸åŒçš„è¯ï¼Œæ”¹å˜ bash
                               çš„è¡Œä¸ºï¼Œæ¥æ»¡è¶³æ ‡å‡† (posix mode)。
                       privileged
                               与 -p 相åŒã€‚
                       verbose 与 -v 相åŒã€‚
                       vi      使用 vi æ ·å¼çš„命令行编冀缑妗
                       xtrace  与 -x 相åŒã€‚
                       如果给出了ä¸å¸¦         option-name         çš„         -o
                       选项,当å‰é€‰é¡¹çš„值将被打å°å‡ºæ¥ã€‚如果给出了ä¸å¸¦
                       option-name                    çš„                     +o
                       选项,将在标准输出显示一系列å¯ä»¥é‡å»ºå½“å‰é€‰é¡¹è®¾å®šçš„   set
                       命令。
               -p      打开 privileged mode (             )在这个模å¼ä¸­ï¼Œä¸ä¼šå¤„ç†
                       $ENV          和          $BASH_ENV          文件,shell
                       函数ä¸ä¼šä»ŽçŽ¯å¢ƒä¸­ç»§æ‰¿ï¼ŒçŽ¯å¢ƒä¸­å¦‚æžœæœ‰å˜é‡       SHELLOPT,
                       也将被忽略。如果     shell    å¯åŠ¨æ—¶çš„æœ‰æ•ˆç”¨æˆ·(组)    ID
                       与真实用户(组)   ID   ä¸åŒï¼Œå¹¶ä¸”没有给出    -p    选项,
                       将执行这些æ“作,有效用户       ID       将设置为真实用户
                       ID。如果å¯åŠ¨æ˜¯ç»™å‡ºäº†   -p   选项,有效用户    ID    ä¸ä¼š
                       被é‡ç½®ã€‚将这个选项关闭使得有效用户和组                ID
                       被设置为真实用户和组 ID。
               -t      读å–并执行一个命令之åŽé€€å‡ºã€‚
               -u      åœ¨è¿›è¡Œå‚æ•°æ‰©å±•时,将未定义的å˜é‡ä½œä¸ºé”™è¯¯ã€‚如果试图扩展未定义的å˜é‡ï¼Œshell
                       将输出一æ¡é”™è¯¯æ¶ˆæ¯;      如果是éžäº¤äº’çš„     shell,shell
                       将以éžé›¶å€¼é€€å‡ºã€‚
               -v      在读å–è¾“å…¥çš„åŒæ—¶æ‰“å°å‡ºæ¥ã€‚
               -x      扩展æ¯ä¸ªç®€å•命令之åŽï¼Œæ˜¾ç¤º                           PS4
                       çš„å€¼ï¼ŒæŽ¥ç€æ˜¾ç¤ºå‘½ä»¤å’Œå®ƒæ‰©å±•åŽçš„傿•°ã€‚
               -B      shell   æ‰§è¡ŒèŠ±æ‹¬å·æ‰©å±•  (å‚è§ä¸Šé¢çš„  Brace  Expansion。
                       这是默认å…许的。
               -C      如果设置的è¯ï¼Œ  bash  使用é‡å®šå‘æ“作符  >,  >&,  å’Œ   <>
                       时,ä¸ä¼šè¦†ç›–已存在的文件。å¯ä»¥ä½¿ç”¨é‡å®šå‘æ“作符 >| 代替 >
                       æ¥åˆ›å»ºè¾“出文件,从而绕过这个é™åˆ¶ã€‚
               -H      å…许    Enable    !     æ ·å¼çš„åŽ†å²æ›¿æ¢ã€‚在交互     shell
                       中这个选项是默认å¯ç”¨çš„。
               -P      如果设置的è¯ï¼Œshell             在执行类似            cd
                       的,改å˜å½“å‰å·¥ä½œç›®å½•的命令时,ä¸ä¼šè·Ÿéšç¬¦å·è¿žæŽ¥ã€‚它将使用物ç†çš„目录结构æ¥ä»£æ›¿ã€‚默认情况下,
                       bash 在执行改å˜å½“å‰ç›®å½•的命令时跟éšè·¯å¾„的逻剂础
               --      å¦‚æžœè¿™ä¸ªé€‰é¡¹æ²¡æœ‰å‚æ•°ï¼Œå°†å–消ä½ç½®å‚数的定义。å¦åˆ™ï¼Œä½ç½®å‚数将设置为
                       arg,å³ä½¿å®ƒä»¬ä»¥ - 开始。
               -       通知信å·çš„结æŸï¼Œä½¿å¾—所有剩余的 arg  被赋予ä½ç½®å‚数。  -x
                       å’Œ -v 选项被关闭。如果没有 arg,ä½ç½®å‚æ•°å°†ä¸ä¼šæ”¹å˜ã€‚
 
               这个选项默认是关闭的,除éžå¦å¤–说明。使用      +     è€Œä¸æ˜¯     -
               使得这些选项被关闭。选项都å¯ä»¥ä½œä¸ºå‚数,        在         shell
               å¯åŠ¨æ—¶æŒ‡å®šã€‚å½“å‰çš„选项集åˆå¯ä»¥ä»Ž                              $-
               找到。返回值总是真,除éžé‡åˆ°äº†éžæ³•的选项。
 
        shift [n]
               从 n+1 ... 开始的选项被é‡å‘½å为 $1 ....  从 $#  å‘下直到  $#-n+1
               çš„é€‰é¡¹è¢«å–æ¶ˆå®šä¹‰ã€‚  n  必须是éžè´Ÿæ•´æ•°ï¼Œå°äºŽæˆ–等于  $#。如果 n 是
               0,ä¸ä¼šæ”¹å˜å‚数。如果没有给出 nå°±å‡å®šå®ƒæ˜¯  1。如果  n  比  $#
               大,ä½ç½®å‚æ•°ä¸ä¼šæ”¹å˜ã€‚返回值大于   0,如果   n  比  $#  大或å°äºŽ
               0ï¼›å¦åˆ™è¿”回 0。
 
        shopt [-pqsu] [-o] [optname ...]
               对于控制å¯é€‰çš„ shell 行为的å˜é‡ï¼Œæ”¹å˜å®ƒä»¬çš„值。没有选项或者有 -p
               选项时,将显示所有å¯è®¾ç½®çš„选项列表,以åŠå®ƒä»¬æ˜¯å¦å·²æ—§æŸšçŽ«é—¹ç”˜å°½
               -p                    使得输出以一ç§å¯ä»¥è¢«é‡ç”¨ä¸ºè¾“å…¥çš„å½¢å¼æ˜¾ç¤ºã€‚
               其他选项有如下å«ä¹‰ï¼š
               -s     å…许(设置) æ¯ä¸ª optname。
               -u     ç¦æ­¢(å–æ¶ˆ) æ¯ä¸ª optname。
               -q     ç¦æ­¢é€šå¸¸çš„输出     (安陿¨¡å¼)ï¼›è¿”å›žçŠ¶æ€æŒ‡ç¤ºäº†     optname
                      是å¦è¢«è®¾ç½®ã€‚ 如果对 -q 给出了多个 optname  傿•°ï¼Œå¦‚果所有
                      optname 都被å…许,返回值就是 0ï¼› å¦åˆ™è¿”回éžé›¶å€¼ã€‚
               -o     é™åˆ¶ optname 的值为内建命令 set çš„ -o 选项定义的值。
 
               如果使用       -s       或       -u      时没有给出      optname
               傿•°ï¼Œæ˜¾ç¤ºå°†åˆ†åˆ«é™äºŽè¢«è®¾ç½®æˆ–è¢«å–æ¶ˆçš„选项。   除éžå¦å¤–说明,shopt
               é€‰é¡¹é»˜è®¤è¢«ç¦æ­¢(å–æ¶ˆ)。
 
               返回值在列出选项时是             0,如果所有             optname
               都被å…许的è¯ï¼Œå¦åˆ™æ˜¯éžé›¶å€¼ã€‚        å½“è®¾ç½®æˆ–å–æ¶ˆé€‰é¡¹æ—¶ï¼Œè¿”回值是
               0ï¼Œé™¤éž optname æ˜¯éžæ³•çš„ shell 选项。
 
               shopt 选项的列表是:
 
               cdable_vars
                       如果设置的è¯ï¼Œå†…建命令                                cd
                       çš„å‚æ•°å¦‚æžœä¸æ˜¯ç›®å½•,就å‡å®šæ˜¯ä¸€ä¸ªå˜é‡ï¼Œå®ƒçš„值是è¦åˆ‡æ¢åˆ°çš„目录å。
               cdspell 如果设置的è¯ï¼Œ                                        cd
                       命令中目录的细微拼写错误能够得以纠正。检查的错误包括字符错ä½ï¼Œç¼ºå­—符,
                       é‡å¤è¾“å…¥åŒä¸€å­—ç¬¦ã€‚å¦‚æžœæ‰¾åˆ°äº†æ­£ç¡®çš„å€¼ï¼Œå°†æ‰“å°æ­£ç¡®çš„æ–‡ä»¶å,命令将继续。
                       这个选项åªèƒ½åœ¨äº¤äº’ shell 中使用。
               checkhash
                       如果设置的è¯ï¼Œbash
                       åœ¨æ‰§è¡Œå‘½ä»¤å‰æ£€æµ‹æ•£åˆ—表中的命令是å¦å­˜åœ¨ã€‚
                       如果一个被散列的命令ä¸å†å­˜åœ¨ï¼Œå°†è¿›è¡Œæ­£å¸¸çš„路径æœç´¢ã€‚
               checkwinsize
                       如果设置的è¯ï¼Œbash
                       åœ¨æ¯æ¡å‘½ä»¤æ‰§è¡ŒåŽæ£€æµ‹çª—å£å¤§å°ï¼Œå¦‚果需è¦çš„è¯å°±æ›´æ–°   LINES
                       和 COLUMNS 的值。
               cmdhist 如果设置的è¯ï¼Œ                                      bash
                       试ç€å°†ä¸€ä¸ªå¤šè¡Œå‘½ä»¤çš„æ‰€æœ‰è¡Œæ”¾åˆ°åŒä¸€ä¸ªåކ岿¡ç›®ä¸­ã€‚这样使得
                       多行命令å¯ä»¥å®¹æ˜“åœ°é‡æ–°ä¿®æ”¹ã€‚
               dotglob 如果设置的è¯ï¼Œ         bash          会把以          `.'
                       开始的文件å包å«åœ¨è·¯å¾„忉©å±•的结果中。
               execfail
                       如果设置的è¯ï¼Œéžäº¤äº’çš„                             shell
                       如果ä¸èƒ½æ‰§è¡Œä½œä¸ºå‚æ•°æä¾›ç»™å†…建命令                  exec
                       的文件时将ä¸ä¼šé€€å‡ºã€‚交互的       shell      在      exec
                       失败时ä¸ä¼šé€€å‡ºã€‚
               expand_aliases
                       如果设置的è¯ï¼Œåˆ«å被扩展,就åƒä¸Šé¢               ALIASES
                       中讲到的一样。这个选项在交互 shell 中是默认å¯ç”¨çš„。
               extglob 如果设置的è¯ï¼Œå°†å…è®¸ä¸Šé¢        Pathname       Expansion
                       中æåˆ°çš„æ‰©å±•模å¼åŒ¹é…特性。
               histappend
                       如果设置的è¯ï¼Œåœ¨ shell 退出时,历å²åˆ—表将追加到以  HIST-
                       FILE 的值为å的文件之åŽï¼Œè€Œä¸æ˜¯è¦†ç›–文件。
               histreedit
                       如果设置的è¯ï¼Œå¹¶ä¸”正在使用                    readlin,
                       用户å¯ä»¥é‡æ–°ä¿®æ”¹å¤±è´¥çš„åŽ†å²æ›¿æ¢ã€‚
               histverify
                       如果设置的è¯ï¼Œå¹¶ä¸”正在使用                    readlin,
                       åŽ†å²æ›¿æ¢çš„结果ä¸ä¼šç«‹å³ä¼ ç»™  shell 解释器。结果行被加载到
                       readline 编蓟撼迩市斫薪徊é™ç”·è–·æ‘¹
               hostcomplete
                       如果设置的è¯ï¼Œå¹¶ä¸”正在使用        readlin,       bash
                       将试ç€å¯¹æ­£åœ¨è¿›è¡Œè¡¥å…¨çš„åŒ…å«            çš„è¯è¿›è¡Œä¸»æœºå补全
                       (å‚è§ä¸Šé¢çš„       READLINE        中的        Completing
                       段è½)。这是默认å…许的。
               huponexit
                       如果设置的è¯ï¼Œåœ¨äº¤äº’的登录     shell     退出时     bash
                       将呿‰€æœ‰ä½œä¸šå‘出 SIGHUP ä¿¡å·ã€‚
               interactive_comments
                       如果设置的è¯ï¼Œå°†å…许在交互     shell     中é‡åˆ°ä»¥      #
                       å¼€å¤´çš„è¯æ—¶å¿½ç•¥è¿™ä¸ªè¯å’Œä¸€è¡Œä¸­æ‰€æœ‰å‰©ä½™çš„字符   (å‚è§ä¸Šé¢çš„
                       COMMENTS         这个选项是默认å…许的。
               lithist 如果设置的è¯ï¼Œå¹¶ä¸”å…许了                         cmdhist
                       选项,多行的命令在ä¿å­˜åˆ°åކå²ä¸­æ—¶å°†åŒ…嫿–°è¡Œç¬¦ï¼Œè€Œä¸æ˜¯åœ¨å¯èƒ½çš„地方使用分å·ã€‚
               login_shell
                       如果   shell   作为登录    shell    å¯åŠ¨ï¼Œå°†è®¾ç½®è¿™ä¸ªé€‰é¡¹
                       (å‚è§ä¸Šé¢çš„      (INVOCATION) 。这个值ä¸å¯ä¿®æ”¹ã€‚
               mailwarn
                       如果设置的è¯ï¼Œå¹¶ä¸”                                  bash
                       正在检测上次检测以æ¥è¢«å­˜å–过的邮件, 将显示  ``The  mail
                       in mailfile has been read''(mailfile 中的邮件已被读å–)。
               no_empty_cmd_completion
                       如果设置的è¯ï¼Œå¹¶ä¸”正在使用                    readlin,
                       试图在空行上执行补全时,      bash     ä¸ä¼šæœç´¢     PATH
                       æ¥æŸ¥æ‰¾å¯èƒ½çš„补全。
               nocaseglob
                       如果设置的è¯ï¼Œ                                      bash
                       进行路径扩展时使用大å°å†™ä¸æ•感方å¼åŒ¹é…文件å(å‚è§ä¸Šé¢çš„
                       Pathname Expansion                 
               nullglob
                       如果设置的è¯ï¼Œ                                      bash
                       å°†å…许ä¸åŒ¹é…ä»»ä½•æ–‡ä»¶çš„æ¨¡å¼æ‰©å±•ä¸ºç©ºå­—ç¬¦ä¸²è€Œä¸æ˜¯å®ƒä»¬è‡ªèº«(å‚è§ä¸Šé¢çš„
                       Pathname Expansion                 
               progcomp
                       如果设置的è¯ï¼Œå°†å¯ç”¨å¯ç¼–程补全功能   (å‚è§ä¸Šé¢çš„    Pro-
                       grammable Completion)。 这个选项是默认å¯ç”¨çš„。
               promptvars
                       如果设置的è¯ï¼Œæç¤ºå­—符串è¦ç«Ÿåަ              PROMPTING
                       中æè¿°çš„æ‰©å±•,然åŽè¿˜è¦-
                       过å˜é‡å’Œå‚数扩展。这个选项是默认å¯ç”¨çš„。
               restricted_shell
                       shell 设置这个选项,如果它是以å—陿¨¡å¼å¯ç”¨çš„ (å‚è§ä¸‹é¢çš„
                                  shell(RESTRICTED                            SHELL)
                       章节)。这个值ä¸èƒ½ä¿®æ”¹ã€‚在执行å¯åŠ¨æ–‡ä»¶æ—¶ï¼Œå®ƒä¸ä¼šè¢«é‡ç½®ï¼Œä½¿å¾—å¯åŠ¨æ–‡ä»¶å¯ä»¥
                       得知 shell æ˜¯å¦æ˜¯å—é™çš„。
               shift_verbose
                       如果设置的è¯ï¼Œå†…建命令                             shift
                       在åç§»é‡è¶…过ä½ç½®å‚数的个数时打å°ä¸€æ¡é”™è¯¯æ¶ˆæ¯ã€‚
               sourcepath
                       如果设置的è¯ï¼Œå†…建命令     source    (.)    使用    PATH
                       ä¸­çš„å€¼æ¥æŸ¥æ‰¾åŒ…å«ä½œä¸ºå‚数给出的文件。这个选项默认是å¯ç”¨çš„。
               xpg_echo
                       如果设置的è¯ï¼Œå†…建命令 echo é»˜è®¤æ‰©å±•åæ–œæ è½¬ä¹‰åºåˆ—。
        suspend [-f]
               挂起    shell   的执行,直到收到一个   SIGCONT   ä¿¡å·ã€‚选项   -f
               表示如果这是一个登录     shell,那么ä¸è¦æç¤ºï¼Œç›´æŽ¥æŒ‚起。返回值是
               0ï¼Œé™¤éž     shell     是登录     shell     并且没有指定     -,
               或者没有å¯ç”¨ä½œä¸šæŽ§åˆ¶ã€‚
        test expr
        [ expr ]
               返回状æ€å€¼       0       或        1ï¼Œæ ¹æ®æ¡ä»¶è¡¨è¾¾å¼        expr
               的求值而定。æ¯ä¸ªæ“作符和æ“作数都必须是一个å•ç‹¬çš„å‚æ•°ã€‚表达å¼ä½¿ç”¨ä¸Šé¢
                              (CONDITIONAL EXPRESSIONS) 中的æ“作构造。
 
               表达å¼å¯ä»¥ç”¨ä¸‹åˆ—æ“作符结åˆï¼Œä»¥ä¼˜å…ˆçº§çš„é™åºåˆ—出。
               ! expr 值为真,如果 expr 为å‡ã€‚
               ( expr )
                      返回 expr 的值。括å·å¯ä»¥ç”¨æ¥è¶…è¶Šæ“作符的一般优先级。
               expr1 -a expr2
                      值为真,如果 expr1 和 expr2 都为真。
               expr1 -o expr2
                      值为真,如果 expr1 或 expr2 为真。
 
               test å’Œ [ ä½¿ç”¨åŸºäºŽå‚æ•°ä¸ªæ•°çš„一系列规则,对æ¡ä»¶è¡¨è¾¾å¼è¿›è¡Œæ±‚值。
 
               0 arguments
                      表达å¼ä¸ºå‡ã€‚
               1 argument
                      表达å¼ä¸ºçœŸï¼Œå½“䏔仅当傿•°éžç©ºã€‚
               2 arguments
                      å¦‚æžœç¬¬ä¸€ä¸ªå‚æ•°æ˜¯  !,表达å¼ä¸ºçœŸï¼Œå½“ä¸”ä»…å½“ç¬¬äºŒä¸ªå‚æ•°ä¸ºç©ºã€‚
                      å¦‚æžœç¬¬ä¸€ä¸ªå‚æ•°æ˜¯ä¸Šé¢                (CONDITIONAL EXPRESSIONS)
                      中列出的å•ç›®æ¡ä»¶è¿ç®—符之一,表达å¼ä¸ºçœŸï¼Œå½“且仅当å•目测试为真。
                      å¦‚æžœç¬¬ä¸€ä¸ªå‚æ•°ä¸æ˜¯åˆæ³•çš„å•ç›®æ¡ä»¶è¿ç®—符,表达å¼ä¸ºå‡ã€‚
               3 arguments
                      å¦‚æžœç¬¬äºŒä¸ªå‚æ•°æ˜¯ä¸Šé¢                (CONDITIONAL EXPRESSIONS)
                      中列出的二进制æ¡ä»¶æ“作符之一,表达å¼çš„ç»“æžœæ˜¯ä½¿ç”¨ç¬¬ä¸€å’Œç¬¬ä¸‰ä¸ªå‚æ•°ä½œä¸ºæ“作数的二进制测试的结果。
                      å¦‚æžœç¬¬ä¸€ä¸ªå‚æ•°æ˜¯
                      !,表达å¼å€¼æ˜¯ä½¿ç”¨ç¬¬äºŒå’Œç¬¬ä¸‰ä¸ªå‚数进行åŒå‚数测试的结果å–å。
                      å¦‚æžœç¬¬ä¸€ä¸ªå‚æ•°æ˜¯                          (ï¼Œç¬¬ä¸‰ä¸ªå‚æ•°æ˜¯
                      )ï¼Œç»“æžœæ˜¯å¯¹ç¬¬äºŒä¸ªå‚æ•°è¿›è¡Œå•傿•°æµ‹è¯•的结果。
                      å¦åˆ™ï¼Œè¡¨è¾¾å¼ä¸ºå‡ã€‚è¿™ç§æƒ…况下        -a        å’Œ       -o
                      æ“作符被认为二进制æ“作符。
               4 arguments
                      å¦‚æžœç¬¬ä¸€ä¸ªå‚æ•°æ˜¯
                      !ï¼Œç»“æžœæ˜¯ç”±å‰©ä½™å‚æ•°ç»„æˆçš„䏉傿•°è¡¨è¾¾å¼ç»“æžœå–å。
                      å¦åˆ™ï¼Œè¡¨è¾¾å¼è¢«æ ¹æ®ä¸Šé¢åˆ—出的优先级规则解释并执行。
               5 或更多 arguments
                      表达å¼è¢«æ ¹æ®ä¸Šé¢åˆ—出的优先级规则解释并执行。
 
        times  对  shell  ä»¥åŠ   shell   è¿è¡Œçš„进程,打å°ç´¯è®¡çš„用户和系统时间。
               è¿”å›žçŠ¶æ€æ˜¯ 0。
 
        trap [-lp] [arg] [sigspec ...]
               当       shell      æ”¶åˆ°ä¿¡å·      sigspec      时,命令      arg
               将被读å–并执行。如果没有给出      arg      或者给出的是       -,
               所有指定的信å·è¢«è®¾ç½®ä¸ºå®ƒä»¬çš„åˆå§‹å€¼ (进入 shell 时它们的值)。如果
               arg      是空字符串,      sigspec      指定的信å·è¢«       shell
               和它å¯åŠ¨çš„å‘½ä»¤å¿½ç•¥ã€‚å¦‚æžœ  arg  ä¸å­˜åœ¨ï¼Œå¹¶ä¸”给出了  -p 那么与æ¯ä¸ª
               sigspec
               相关è”的陷阱命令将被显示出æ¥ã€‚å¦‚æžœæ²¡æœ‰ç»™å‡ºä»»ä½•å‚æ•°ï¼Œæˆ–åªç»™å‡ºäº†
               -, trap  将打å°å‡ºä¸Žæ¯ä¸ªä¿¡å·ç¼–å·ç›¸å…³çš„命令列表。æ¯ä¸ª   sigspec
               å¯ä»¥æ˜¯  <signal.h> 定义的信å·å,或是一个信å·ç¼–å·ã€‚ 如果 sigspec
               是 EXIT (0),命令 arg 将在  shell  退出时执行。如果  sigspec  是
               DEBUG,  命令  arg  将在æ¯ä¸ªç®€å•命令  (simple command,å‚è§ä¸Šé¢çš„
               SHELL  GRAMMAR)  ä¹‹åŽæ‰§è¡Œã€‚如果  sigspec  是   ERR,   命令   arg
               将在任何命令以éžé›¶å€¼é€€å‡ºæ—¶æ‰§è¡Œã€‚如果失败的命令是  until 或 while
               鸦返囊徊糠郑     if      语å¥çš„一部分,      &&      或      ||
               åºåˆ—的一部分,或者命令的返回值是通过     !     转化而æ¥ï¼Œ    ERR
               陷阱将ä¸ä¼šæ‰§è¡Œã€‚选项 -l 使得 shell  打å°ä¿¡å·å和对应编å·çš„列表。
               shell
               忽略的信å·ä¸èƒ½è¢«æ•æ‰æˆ–é‡ç½®ã€‚在å­è¿›ç¨‹ä¸­ï¼Œè¢«æ•æ‰çš„ä¿¡å·åœ¨è¿›ç¨‹åˆ›å»ºæ—¶è¢«é‡ç½®ä¸ºåˆå§‹å€¼ã€‚
               返回值为å‡ï¼Œå¦‚æžœ sigspec éžæ³•ï¼›å¦åˆ™ trap 返回真。
 
        type [-aftpP] name [name ...]
               没有选项时,指示æ¯ä¸ª                                        name
               将如何被解释,如果用作一个命令å。如果使用了  -t   选项,   type
               打å°ä¸€ä¸ªå­—符串,内容是如下之一:   alias,   keyword,   function,
               builtin,   或   file   _ 如果   name    分别是一个别å,shell
               ä¿ç•™å­—,函数,内建命令或ç£ç›˜æ–‡ä»¶ã€‚如果没有找到            name_
               那么ä¸ä¼šæ‰“å°ä»»ä½•东西,返回退出状æ€å‡ã€‚如果使用了 -p 选项,  type
               返回如果 name 作为命令å,将被执行的ç£ç›˜æ–‡ä»¶å;或者返回空,如果
               ``type -t name'' ä¸ä¼šè¿”回 file.   选项  -P  选项强制对æ¯ä¸ª  name
               æœç´¢    PAT,   å³ä½¿   ``type   -t   name''   ä¸ä¼šè¿”回   file.
               如果命令在散列中,  -p   å’Œ   -P   å°†æ‰“å°æ•£åˆ—çš„å€¼ï¼Œè€Œä¸æ˜¯   PATH
               中首先出现的那一个文件。如果使用了      -a      选项,      type
               æ‰“å°æ‰€æœ‰åŒ…å«å¯æ‰§è¡Œçš„åç§°                                    name
               的场åˆã€‚结果包括别åå’Œå‡½æ•°ï¼Œå½“ä¸”ä»…å½“æ²¡æœ‰åŒæ—¶ä½¿ç”¨  -p  选项。使用
               -a     æ—¶ä¸ä¼šæŸ¥æ‰¾æ•£åˆ—中的命令表。选项     -f     阻止      shell
               进行查找,就åƒåœ¨å†…建命令       command       中一样。       type
               è¿”å›žçœŸï¼Œå¦‚æžœæ‰¾åˆ°äº†ä»»ä½•å‚æ•°ã€‚什么都没找到则返回å‡ã€‚
 
        ulimit [-SHacdflmnpstuv [limit]]
               在支æŒå®ƒçš„系统上,对                                       shell
               和它å¯åŠ¨çš„è¿›ç¨‹ï¼Œæä¾›å¯¹å¯ç”¨èµ„æºçš„æŽ§åˆ¶ã€‚    选项    -H    å’Œ    -S
               指定为所给资æºè®¾å®šçš„硬性和柔性é™é¢ã€‚
               硬性é™é¢åœ¨è®¾ç½®åŽä¸èƒ½å¢žåŠ ï¼›æŸ”æ€§é™é¢å¯ä»¥å¢žåŠ ï¼Œç›´åˆ°ä¸Žç¡¬æ€§é™é¢ç›¸ç­‰ã€‚
               如果没有给出 -H  或  -S  é€‰é¡¹ï¼Œå°†åŒæ—¶è®¾ç½®ç¡¬æ€§å’ŒæŸ”性é™é¢ã€‚  limit
               的值å¯ä»¥æ˜¯ä¸€ä¸ªæ•°å­—,å•使˜¯æŒ‡å®šèµ„æºçš„å•元值,或者是特殊值   hard,
               soft,                        或                        unlimited
               ä¹‹ä¸€ï¼Œæ„æ€åˆ†åˆ«æ˜¯å½“å‰ç¡¬æ€§é™é¢ï¼Œå½“剿Ÿ”性é™é¢å’Œæ²¡æœ‰é™é¢ã€‚如果忽略了
               limit_    将打å°å‡ºå½“å‰å¯¹èµ„æºçš„æŸ”性é™é¢å€¼ï¼Œé™¤éžç»™å‡ºäº†       -H
               选项。当指定多于一个
               èµ„æºæ—¶ï¼Œé™é¢åç§°å’Œå•ä½å°†åœ¨å€¼ä¹‹å‰æ‰“å°å‡ºæ¥ã€‚其他选项按照如下æ„义解释:
               -a     报告所有当å‰é™é¢
               -c     core 文件的最大值
               -d     è¿›ç¨‹æ•°æ®æ®µçš„æœ€å¤§å€¼
               -f     shell 创建的文件的最大值
               -l     内存中å¯ä»¥é”定的最大值
               -m     常驻内存的最大值
               -n     打开的文件æè¿°ç¬¦æœ€å¤§ä¸ªæ•° (大多数系统ä¸å…许设置这个值)
               -p     管é“大å°ï¼Œä»¥ 512 字节的å—为å•ä½ (这个值å¯èƒ½ä¸èƒ½è®¾ç½®)
               -s     栈的最大值
               -t     cpu 时间总数的最大值,以秒计
               -u     用户å¯ä»¥è¿è¡Œçš„æœ€å¤§è¿›ç¨‹æ•°
               -v     shell å¯ç”¨çš„虚拟内存总é‡çš„æœ€å¤§å€¼
 
               如果给出了     limit_   它将是指定资æºçš„æ–°é™é¢    (选项    -a
               åªæ˜¾ç¤ºå®ƒä»¬)。如果没有给出选项,则å‡è®¾æœ‰ -。值的递增间隔是 1024
               字节,除了  -t å•使˜¯ 秒, -p å•使˜¯ 512 字节的å—个数, -n å’Œ -u
               是ä¸å¯è°ƒèŠ‚çš„å€¼ã€‚è¿”å›ž
               0,除éžç»™å‡ºäº†éžæ³•çš„é€‰é¡¹æˆ–å‚æ•°ï¼Œæˆ–者在设置新的é™é¢æ—¶å‘生了错误。
 
        umask [-p] [-S] [mode]
               用户创建文件的掩ç è¢«è®¾ç½®ä¸º        mode.         如果        mode
               以数字开始,它被解释为一个八进制数;å¦åˆ™è¢«è§£é‡Šä¸ºç±»ä¼¼äºŽ  chmod(1)
               接å—的符å·å½¢å¼çš„æ¨¡å¼æŽ©ç ã€‚如果忽略了                      mode_
               将打å°å½“剿ީç å€¼ã€‚选项                                        -S
               使得掩ç ä»¥ç¬¦å·å½¢å¼æ‰“å°ï¼›é»˜è®¤è¾“出是八进制数。如果给出了        -p
               选项,并且忽略了                                          mode_
               输出将是一ç§å¯ä»¥é‡ç”¨ä¸ºè¾“入的形å¼ã€‚返回值是
               0,如果æˆåŠŸæ”¹å˜äº†æ¨¡å¼ï¼Œæˆ–者没有给出 mode。 其他情况返回å‡ã€‚
 
        unalias [-a] [name ...]
               从已定义的别å列表中删除           name。如果给出了           -a
               将删除所有别å定义。返回值是真,除éžç»™å‡ºçš„                  name
               䏿˜¯å·²å®šä¹‰çš„别å。
 
        unset [-fv] [name ...]
               å°†æ¯ä¸ª  name  对应的å˜é‡æˆ–函数删除。如果没有给出选项,或者给出了
               -v           选项,          name          仅包括          shell
               å˜é‡ã€‚åªè¯»çš„å˜é‡ä¸èƒ½è¢«å–消定义。如果给出了 -f 选项, name 仅包括
               shell
               函数,函数的定义将被删除。æ¯ä¸ªè¢«å–消定义的å˜é‡æˆ–函数都被从åŽç»­å‘½ä»¤çš„环境中删除。
               如果  RANDOM,  SECONDS,  LINENO, HISTCMD, FUNCNAME, GROUPS, 或者
               DIRSTACK
               ä¸­çš„ä»»ä½•ä¸€ä¸ªè¢«å–æ¶ˆå®šä¹‰ï¼Œå®ƒä»¬å°†ä¸§å¤±ç‰¹æ®Šçš„属性,å³ä½¿å®ƒä»¬åŽæ¥è¢«é‡æ–°å®šä¹‰ã€‚
               é€€å‡ºçŠ¶æ€æ˜¯çœŸï¼Œé™¤éž name ä¸å­˜åœ¨æˆ–是åªè¯»çš„。
 
        wait [n]
               等待指定的进程,返回它的终止状æ€ã€‚     n      å¯ä»¥æ˜¯è¿›ç¨‹      ID
               或一个作业å·ï¼›å¦‚果给出的是作业å·ï¼Œå°†ç­‰å¾…作业的管é“中所有进程。如果没有给出
               n_将等待所有当å‰å¤„于激活状æ€çš„å­è¿›ç¨‹ï¼Œè¿”å›žçŠ¶æ€æ˜¯  0。如果   n
               指定了ä¸å­˜åœ¨çš„è¿›ç¨‹æˆ–ä½œä¸šï¼Œè¿”å›žçŠ¶æ€æ˜¯
               127。å¦åˆ™ï¼Œè¿”å›žçŠ¶æ€æ˜¯æ‰€ç­‰å¾…的最åŽä¸€ä¸ªè¿›ç¨‹æˆ–作业的退出状æ€ã€‚
        如果 bash 以 rbash åç§°å¯åŠ¨ï¼Œæˆ–è€…å¯åŠ¨æ—¶ä½¿ç”¨äº† -r 选项,那么它æˆä¸ºå—é™çš„
        shell。      å—é™çš„      shell      一般用æ¥å»ºç«‹ä¸€ä¸ªæ¯”标准的      shell
        å—到更多控制的环境。 它的行为与 bash 一致,除了下列行为是ä¸å…许的 (dis-
        allowed) 或ä¸ä¼šè¿è¡Œçš„ (not performed)。
 
        o      使用 cd æ¥æ”¹å˜è·¯å¾„ï¼›
 
        o      è®¾ç½®æˆ–å–æ¶ˆ SHELL, PATH, ENV, 或 BASH_ENV å˜é‡çš„值;
 
        o      指定的命令åä¸­åŒ…å« / ï¼›
 
        o      æŒ‡å®šåŒ…å« / 的文件å作为传递给内建命令 .  çš„å‚æ•°ï¼›
 
        o      æŒ‡å®šåŒ…å«æ–œæ   (slash)  的文件å作为  -p  é€‰é¡¹çš„å‚æ•°ï¼Œä¼ é€’ç»™ hash
               内建命令;
 
        o      å¯åŠ¨æ—¶ä»Ž shell 环境中导入 (import) 函数定义;
 
        o      å¯åŠ¨æ—¶è§£é‡Š shell 环境中 SHELLOPTS 的值;
 
        o      使用 >, >|, <>, >&, &>, å’Œ >> ç­‰é‡å®šå‘æ“作符é‡å®šå‘输出;
 
        o      使用 exec 内建命令æ¥ä»¥å¦ä¸€ä¸ªå‘½ä»¤æ›¿æ¢ shellï¼›
 
        o      使用 enable 内建命令的 -f å’Œ -d 选项æ¥å¢žåŠ å’Œåˆ é™¤å†…å»ºå‘½ä»¤ï¼›
 
        o      使用 enable 内建命令æ¥å…è®¸å’Œç¦æ­¢ shell 内建命令;
 
        o      指定 command 内建命令的 -p 选项;
 
        o      使用 set +r 或 set +o restricted æ¥å…³é—­å—陿¨¡å¼ã€‚
 
        这些é™åˆ¶åœ¨æ‰€æœ‰å¯åŠ¨æ–‡ä»¶è¯»å–ä¹‹åŽæ‰ä¼šç”Ÿæ•ˆã€‚
 
        当一个 shell 脚本作为一个命令执行时 (å‚è§ä¸Šé¢çš„           (COMMAND EXECU-
        TION) 章节), rbash 关闭为执行脚本而孵化 (spawn) çš„ shell 的所有é™åˆ¶ã€‚
        Bash Reference Manual, Brian Fox and Chet Ramey
        The Gnu Readline Library, Brian Fox and Chet Ramey
        The Gnu History Library, Brian Fox and Chet Ramey
        Portable  Operating  System  Interface (POSIX) Part 2: Shell and Utili-
        ties, IEEE
        sh(1), ksh(1), csh(1)
        emacs(1), vi(1)
        readline(3)
 
       (FILES)
        /bin/bash
               bash 坿‰§è¡Œæ–‡ä»¶
        /etc/profile
               系统范围的åˆå§‹åŒ–文件,登录 shell 会执行它
        ~/.bash_profile
               个人åˆå§‹åŒ–文件,登录 shell 会执行它
        ~/.bashrc
               个人的æ¯ä¸ªäº¤äº’å¼ shell å¯åŠ¨æ—¶æ‰§è¡Œçš„æ–‡ä»¶
        ~/.bash_logout
               个人的登录 shell æ¸…ç†æ–‡ä»¶ï¼Œå½“一个登录 shell 退出时会执行它
        ~/.inputrc
               个人的 readline åˆå§‹åŒ–文件
 
       (AUTHORS)
        Brian Fox, Free Software Foundation
        bfox@gnu.org
 
        Chet Ramey, Case Western Reserve University
        chet@ins.CWRU.Edu
        如果你å‘现一个       bash       中的      bug,你应当报告它。但是首先,
        你应当确定它真的是一个 bug,并且它在你使用的最新版本的 bash 中存在。
 
        一旦你认定存在那样一个   bug,使用   bashbug   å‘½ä»¤æ¥æäº¤ä¸€ä¸ªé”™è¯¯æŠ¥å‘Šã€‚
        如果你有固定ä½å€ï¼Œé¼“åŠ±ä½ ç”¨é‚®æ”¿çš„æ–¹å¼æäº¤ä¸€ä»½ï¼ å»ºè®®å’Œæœ‰å…³ bash “哲学â€
        (`philosophical') çš„ “错误报告† å¯ä»¥å¯„ç»™  bug-bash@gnu.org  或者贴到
        Usenet 新闻组 gnu.bash.bug 之上。
 
        所有错误报告应当包括:
 
        bash 的版本å·
        硬件信æ¯å’Œæ“作系统
        用æ¥ç¼–译的编译器
        对 bug 行为的æè¿°
        å¯ä»¥æ¿€æ´»è¿™ä¸ª bug 的一个短å°çš„脚本或者什么 “秘诀†(recipe)
 
        bashbug 会自动在它æä¾›çš„错误报告模æ¿ä¸­æ’å…¥å‰ä¸‰é¡¹ã€‚
 
        关于这份手册页的评论和错误报告请直接æäº¤åˆ° chet@ins.CWRU.Edu.
 

BUGS

        它太大了,并且有点慢。
 
        bash    和传统版本的    sh   之间有一些细微的差别,大部分是因为   POSIX
        è§„çº¦çš„è¦æ±‚。
 
        åˆ«åæœºåˆ¶åœ¨ä¸€äº›åº”用中会混淆。
 
        Shell 内建命令和函数ä¸å¯ç»ˆæ­¢/釿–°å¼€å§‹ã€‚
 
        组åˆçš„命令和使用         `a         ;          b          ;          c'
        å½¢å¼çš„命令åºåˆ—åœ¨è¿›ç¨‹è¯•å›¾æš‚åœæ—¶ä¸èƒ½å¾ˆå¥½å¤„ç†ã€‚      当一个进程中止,shell
        ä¼šç«‹å³æ‰§è¡Œåºåˆ—中的下一æ¡å‘½ä»¤ã€‚
        也å¯ä»¥å°†å‘½ä»¤çš„åºåˆ—放在圆括å·ä¸­ï¼Œæ¥å¼ºåˆ¶å¯åЍå­
        shell,这样就å¯ä»¥å°†å®ƒä»¬ä½œä¸ºä¸€ä¸ªå•元中止了。
 
        在       $(...)        命令替æ¢ä¸­çš„æ³¨é‡Šä¸ä¼šè¢«è§£é‡Šï¼Œç›´åˆ°æ‰§è¡Œæ›¿æ¢çš„æ—¶å€™ã€‚
        这将延迟报错,直到命令开始执行之åŽçš„一段时间。
 
        数组å˜é‡è¿˜ä¸èƒ½å¯¼å‡º (export)。
 
                      ]
               <bbbush@163.com>
 
                          ]
        2004.03.05
 
             linu        ma                         :
        http://cmpp.linuxforum.net