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

NAME

        bash - GNU Bourne-Again SHell (GNU å‘½ä»¤è§£é‡‹ç¨‹å¼ ã€ŒBourne二世ã€)
 
     z(SYNOPSIS)
        bash [options] [file]
 
             (COPYRIGHT)
        Bash is Copyright (C) 1989-2002 by the Free Software Foundation, Inc.
 
   yz(DESCRIPTION)
        Bash                             是一蚖P                             sh
        相容的命令解釋程å¼ï¼Œå¯ä»¥åŸ·è¡Œå¾žæ¨™æº–輸入或者檔案中讀å–的命令。       Bash
        也整åˆäº† Korn å’Œ C Shell (ksh å’Œ csh) 中的優秀特性。
 
        Bash  的目標是æˆç‚ºéµå¾ª  IEEE  POSIX Shell and Tools specification (IEEE
        Working Group 1003.2,å¯ç§»æ¤ä½œæ¥­ç³»çµ±è¦ç´„: shell 和工具) 的實ç¾ã€‚
 
       (OPTIONS)
        除了在   set   內建命令的文件中講z的單字符é¸é …   (option)    之外,bash
        在啟動時還解釋下列é¸é …。
 
        -c string 如果有  -c  é¸é …,那麼命令將從 string 中讀å–。如果 string 後-
                  æƒ˜é™¸æŠ (argument),它戔N用於給ä½ç½®åƒæ•¸  (positional  parame-
                  ter,以 $0 起始) 賦C
        -i        如果有 -i é¸é …,shell 將交互地執行 ( interactive )。
        -l        é¸é …使得  bash  以類似登入  shell  (login  shell)  的方å¼å•Ÿå‹•
                  (åƒè¦‹ä¸‹æ‚¸      (INVOCATION) 章節)。
        -r        如果有 -r é¸é …,shell æˆç‚ºå—çš„ ( restricted ) (åƒè¦‹ä¸‹æ‚¸   -
                     shell(RESTRICTED SHELL) 章節)。
        -s        如果有                                                     -s
                  é¸é …,或者如果é¸é …處ç†å®Œä»¥å¾Œï¼Œæ²’æœ‰åƒæ•¸å‰©é¤˜ï¼Œé‚£éº¼å‘½ä»¤å°‡å¾žæ¨™æº–輸入讀å–。
                  這蚇龠竣åƒ\在啟動一茈璊 shell 時å¯ä»¥è¨­ç½®ä½ç½®åƒæ•¸ã€‚
        -D        呿¨™æº–輸出列å°ä¸€èŒˆH   $  為å‰å°Žçš„,以雙引號引用的字符串列表。
                  這是在當å‰èªžè¨€ç’°å¢ƒä¸æ˜¯ C 或 POSIX 時,稿本中需n翻譯的字符串。
                  這蚇龠è’籈t了 -n é¸é …ï¼›ä¸æœƒåŸ·è¡Œå‘½ä»¤ã€‚
        [-+]O [shopt_option]
                  shopt_option   是一  shopt  å…§å»ºå‘½ä»¤å¯æŽ¥å—çš„é¸é …  (åƒè¦‹ä¸‹æ‚¸
                  shell             O(SHELL  BUILTIN   COMMANDS)   章節)。   如果有
                  shopt_option,-O     將設置那蚇龠答漕F     +O     å–æ¶ˆå®ƒã€‚
                  如果沒有給出                              shopt_option,shopt
                  將在標準輸出上列å°è¨­ç‚ºå…許的é¸é …çš„å稱和C    如果啟動é¸é …是
                  +O,輸出將以一種å¯ä»¥å’±å³Žå€æ“—J的格å¼é¡¯ç¤ºã€‚
        --        --        標誌é¸é …çš„çµæŸï¼Œç¦æ­¢å…¶é¤˜çš„é¸é …處ç†ã€‚任何         --
                  ä¹‹å¾Œçš„åƒæ•¸å°‡ä½œç‚ºæª”åå’Œåƒæ•¸å°å¾…ã€‚åƒæ•¸ - 與此等價。
 
        Bash            也解釋一些多字節的é¸é …。在命令行中,這些é¸é …必須置於需-
        nè¢«è­˜åˆ¥çš„å–®å­—ç¬¦åƒæ•¸ä¹‹å‰ã€‚
 
        --dump-po-strings
               等價於 -D,但是輸出是 GNU gettext po (å¯ç§»æ¤å°è±¡) 檔案格å¼
        --dump-strings
               等價於 -D
        --help 在標準輸出顯示用法信æ¯ä¸¦æˆåŠŸé€€å‡º
        --init-file file
        --rcfile file
               如果   shell   是交互的,執行    file    ä¸­çš„å‘½ä»¤ï¼Œè€Œä¸æ˜¯æ¨™æº–çš„-
               茪Håˆå§‹åŒ–檔案 ~/.bashrc (åƒè¦‹ä¸‹æ‚¸      (INVOCATION) 章節)
 
        --login
               等價於 -l
 
        --noediting
               如果 shell 是交互的,ä¸ä½¿ç”¨ GNU readline 庫來讀命令行
 
        --noprofile
               ä¸è®€å–系統Såœçš„啟動檔案    /etc/profile    或者任何茪Håˆå§‹åŒ–檔案
               ~/.bash_profile,  ~/.bash_login,  或  ~/.profile  。é è¨­æƒ…æ³ä¸‹ï¼Œ
               bash 在作為登入 shell 啟動時讀å–這些檔案 (åƒè¦‹ä¸‹æ‚¸      (INVOCA-
               TION) 章節)
 
        --norc 如果  shell  是交互的,ä¸è®€å–/執行茪Håˆå§‹åŒ–檔案  ~/.bashrc   這-
               蚇龠策b shell 以 sh 命令啟動時是é è¨­å•Ÿç”¨çš„
 
        --posix
               如果é è¨­æ“作與     POSIX    1003.2    標準ä¸åŒçš„話,改變    bash
               çš„è¡Œç‚ºä¾†ç¬¦åˆæ¨™æº– (posix mode)
 
        --restricted
               shell æˆç‚ºå—çš„ (åƒè¦‹ä¸‹æ‚¸     shell(RESTRICTED SHELL) 章節)
 
        --rpm-requires
               產生一茯馬牮Z本é‹è¡Œï¼Œéœ€n的檔案的列表。 這蚇龠等]å«äº†  -n  é¸é …。
               它是為了é¿å…進行編譯期錯誤檢測時的制ï¼ï¼  Backticks,  []  tests,
               還有 evals 䏿œƒè¢«è§£é‡‹ï¼Œä¸€äº›ä¾è³´é—œç³»å¯èƒ½ä¸Ÿå¤±
 
        --verbose
               等價於 -v
 
        --version
               在標準輸出顯示此 bash 的版本信æ¯ä¸¦æˆåŠŸé€€å‡ºã€‚
 
       (ARGUMENTS)
        如果é¸é …處ç†ä¹‹å¾Œä»æœ‰åƒæ•¸å‰©é¤˜ï¼Œä¸¦ä¸”沒有指定   -c   或   -s   é¸é …,第一-
        èŒæŠï›Nå‡å®šç‚ºä¸€èŒˆ]å«     shell     命令的檔案的å字。     如果     bash
        是以這種方å¼å•Ÿå‹•的,                   $0                   將設置為這-
        蚗仵蛌漲W字,ä½ç½®åƒæ•¸å°‡è¨­ç½®ç‚ºå‰©é¤˜çš„å…¶ä»–åƒæ•¸ã€‚         Bash        從這-
        蚗仵蚺勿爸並執行命令,然後退出。 Bash  的退出狀態是稿本中執行的最後一-
        茤R令的退出狀態。                       如果沒有執行命令,退出狀態是0。
        嘗試的步驟是先試圖打開在當å‰ç›®éŒ„中的這蚗仵蛂A接下來,
        如果沒有找到,shell å°‡æœç´¢ç¨¿æœ¬çš„ PATH 環境變é‡ä¸­çš„路徑。
 
       (INVOCATION)
        login   shell   登入  shellï¼Œåƒæ•¸é›¶çš„第一茼r符是  -  ,或者啟動時指定了
        --login é¸é …çš„ shell。
 
        interactive 交互的 shell,是一è“ç§å‹ç¦¸S有指定éžé¸é …çš„åƒæ•¸ï¼Œä¸¦ä¸”沒有指定
        -c   é¸é …,標準輸出和標準輸入都連接到了終端   (在   isatty(3)   中判定)
        çš„shell,或者啟動時指定了 -i é¸é …çš„  shell。如果  bash  是交互的,  PS1
        環境變é‡å°‡è¢«è¨­ç½®ï¼Œä¸¦ä¸”   $-   åŒ…å«   i   ,å…許一   shell  稿本或者一-
        è“ç§å²ä»µèš³èš—侅這一狀態。
 
        ä¸‹åˆ—æ®µè½æz了   bash    如何執行它的啟動檔案。如果這些啟動檔案中的任一-
        茼s在但是ä¸å¯è®€å–,  bash  將報告一蚇欞~。檔å中的波浪號 (~,tilde) å°‡åƒ
        EXPANSION 章節中 Tilde Expansion 段æz的那樣展開。
 
        當  bash   是作為交互的登入   shell   啟動的,或者是一茷D交互的   shell
        但是指定了 --login é¸é …, 它漸讀å–並執行 /etc/profile 中的命令,åªné‚£-
        蚗仵蛈s在。    讀å–那蚗仵蚺妨寣Aå®ƒä»¥å¦‚ä¸‹çš„é †åºæŸ¥æ‰¾     ~/.bash_profile,
        ~/.bash_login,        å’Œ        ~/.profile,       從存在並且å¯è®€çš„第一-
        蚗仵蚺勿爸並執行其中的命令。    --noprofile    é¸é …å¯ä»¥ç”¨ä¾†åœ¨    shell
        啟動時阻止它這樣åšã€‚
 
        當一茧nå…¥    shell    退出時,   bash   讀å–並執行檔案   ~/.bash_logout
        中的命令,åªn它存在。
 
        當一茈璊洩 shell  但䏿˜¯ç™»å…¥  shell  啟動時,  bash  從檔案  ~/.bashrc
        中讀å–並執行命令,åªn它存在。å¯ä»¥ç”¨     --norc     é¸é …來阻止它這樣åšã€‚
        --rcfile file  é¸é …將強制  bash  讀å–並執行檔案  file  ä¸­çš„å‘½ä»¤ï¼Œè€Œä¸æ˜¯
        ~/.bashrc 中的。
 
        ç•¶         bash        以éžäº¤äº’的方å¼å•Ÿå‹•時,例如在é‹è¡Œä¸€        shell
        ç¨¿æœ¬æ™‚ï¼Œå®ƒåœ¨ç’°å¢ƒä¸­æŸ¥æ‰¾è®Šé‡        BASH_ENV        ,如果它存在則將它的-
        i開,使用展開的@為一蚗仵蛌漲W稱,讀å–並執行。                  Bash
        é‹ä½œçš„éŽç¨‹å°±å¦‚åŒåŸ·è¡Œäº†ä¸‹åˆ—命令:
               if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
        但是沒有使用 PATH 變é‡çš„虓j索那蚗犰W。
 
        如果     bash     以å稱     sh     啟動,它試圖模仿     (mimic)     sh
        æ­·å²ç‰ˆæœ¬çš„啟動éŽç¨‹ï¼Œç›¡å¯èƒ½åœ°ç›¸ä¼¼ï¼ŒåŒæ™‚也éµå¾ª        POSIX        標準。
        當作為交互å¼ç™»å…¥   shell   啟動時,或者是éžäº¤äº’但使用了   --login   é¸é …
        啟動的時,它漸嘗試讀å–並執行檔案 /etc/profile å’Œ ~/.profile, 中的命令.
        é¸é … --noprofile 用於é¿å…這種行為.當使用命令 sh 來啟動一茈璊泵〞 shell
        時,  bash æŸ¥æ‰¾ç’°å¢ƒè®Šé‡ ENV, 如果有定義的話就擴展它的,然後使用擴展後的-
        @為n讀å–和執行的檔案     çš„å稱.由於使用     sh     啟動的      shell
        䏿œƒè®€å–和執行任何其他的啟動檔案,é¸é …   --rcfile  沒有æ„義.使用å稱  sh
        啟動的éžäº¤äº’çš„  shell  䏿œƒè®€å–任何其他啟動檔案.當以  sh  啟動時,  bash
        在讀å–啟動檔案之後進入 posix 模å¼.
 
        ç•¶  bash 以 posix 模å¼å•Ÿå‹•時,(和使用 --posix å‘½ä»¤è¡Œåƒæ•¸æ•ˆæžœç›¸åŒ),它éµå¾ª
        POSIX   標準.    這種模å¼ä¸‹,äº¤äº’å¼   shell   擴展    ENV    環境變é‡çš„-
        ,讀å–並執行以擴展後å¯çаWçš„é…置檔案.  䏿œƒè®€å–其他檔案.
 
        Bash è©¦è‘—æª¢æ¸¬å®ƒæ˜¯ä¸æ˜¯ç”±é ç¨‹ shell 守護程å¼,通常為 rshd 啟動的.如果 bash
        發ç¾å®ƒæ˜¯ç”± rshd 啟動的,它將讀å–並執行  ~/.bashrc  檔案中的命令,  åªn這-
        蚗仵蛈s在並且å¯è®€.如果以   sh   命令啟動,å®ƒä¸æœƒé€™æ¨£åš.    é¸é …   --norc
        å¯ä»¥ç”¨ä¾†é˜»æ­¢é€™ç¨®è¡Œç‚º,é¸é … --rcfile 用來強制讀å–å¦ä¸€èš—仵,但是通常  rshd
        䏿œƒå…許它, 或者用它怢è“ç§ shell.
 
        如果  shell  是以與真實使用者(組)  id ä¸åŒçš„æœ‰æ•ˆä½¿ç”¨è€…(組) id 來啟動的,
        並且沒有 - é¸é …,é‚£éº¼å®ƒä¸æœƒè®€å–啟動檔案, ä¹Ÿä¸æœƒå¾žç’°å¢ƒä¸­ç¹¼æ‰¿ shell  函數.
        環境變é‡ä¸­å¦‚æžœå‡ºç¾       SHELLOPT  A      它將被忽略.有效使用者      id
        將設置為真實使用者          id.            如果啟動時給出了           -
        é¸é …,那麼啟動時的行為是類似的, ä½†æ˜¯ä¸æœƒå§œm有效使用者 id.
 
     q(DEFINITIONS)
        下列定義在文件餘下部分中通用.
        blank    白
               一茠躓璈峎O tab .
        word詞
               一茼r符åºåˆ—, shell 將它拑欓陘@茧硎c單元. 也稱為一 token片段。
        name     
               一茈u由字æ¯,數字和下劃線構æˆçš„詞,並且以字符或下劃線起始.
               也稱為一 word identifier標識符.
        metacharacter         
               一茼r符, å¦‚æžœä¸æ˜¯å¼•用的話, å°‡æˆç‚ºè©žçš„分隔符. 它是如下字符之一:
               |  & ; ( ) < > space tab
        control operator                 
               一 token(標識), æ“æœ‰æŽ§åˆ¶åŠŸèƒ½. 它是如下符號之一:
               || & && ; ;; ( ) | <newline>
        Reserved      words(ä¿ç•™å­—)      æ˜¯å°       shell       有特殊æ„義的詞.
        下列詞被識別為ä¿ç•™çš„,     å¦‚æžœä¸æ˜¯å¼•用,     䏦䏔䏿˜¯ä¸€èš‹çœ¾ç’ˆR令的起始詞
        (åƒè¦‹ä¸‹æ‚¸  shel    k("SHELL  GRAMMAR")  ),  ä¹Ÿä¸æ˜¯   case   或者   for
        命令的第三茧:
 
        !  case  do done elif else esac fi for function if in select then until
        while { } time [[ ]]
    Simple Commands            O
        simple command(簡單命令) 是(å¯é¸çš„)一系列變é‡è³¦, 緊接著是  blank(空格)
        分隔的詞和咿wå‘,   然後以一  control  operator  çµæŸ.   第一茧指明了-
        n執行的命令, 它被作為第 0 èŒæŠ. 其餘詞被作為這茤Rä»¤çš„åƒæ•¸.
 
        simple command 簡單命令的返回O它的退出狀態,  或是  128+n,  如果命令被
        signal(信號) n çµæŸçš„話.
 
    Pipelines      D
        pipeline(管é“) 是一茤峖h茤R令的åºåˆ—,用字符 | 分隔。管é“çš„æ ¼å¼æ˜¯é€™æ¨£:
 
               [time [-p]] [ ! ] command [ | command2 ... ]
 
        命令        command        的標準輸出通éŽç®¡é“連接到命令        command2
        的標準輸入。連接是在命令指定的任何咿wå‘之å‰é€²è¡Œçš„(åƒè¦‹ä¸‹æ‚¸ REDIRECTION
             V  C
 
        如果ä¿ç•™å­—          !           作為管é“å‰ç¶´ï¼Œç®¡é“的退出狀態將是最後一-
        茤R令的退出狀態的é‚輯éžïŸ«C      å¦å‰‡ï¼Œç®¡é“的退出狀態就是最後一茤R令的。
        shell 在返回退出狀態妨e,等待管é“中的所有命令返回。
 
        如果ä¿ç•™å­—                                                         time
        作為管é“å‰ç¶´ï¼Œç®¡é“中止後將給出執行管é“耗費的使用者和系統時間。 é¸é …  -p
        å°‡ä½¿è¼¸å‡ºç¬¦åˆ   POSIX  指定的格å¼ã€‚  ç’°å¢ƒè®Šé‡  TIMEFORMAT  å¯ä»¥è¨­ç½®ç‚ºä¸€-
        è‡ç’’rç¬¦ä¸²ï¼ŒæŒ‡å®šæ™‚é–“ä¿¡æ¯æ‡‰ç•¶å¦‚何顯示;åƒè¦‹ä¸‹æ‚¸    Shell     Variables
                     q 中 TIMEFORMAT 的講z。
 
        管é“中的æ¯èŒ¤R令都作為單ç¨çš„進程來執行(å³ï¼Œåœ¨ä¸€èŒªl shell 中啟動)。
 
    Lists      C
        list(åºåˆ—)是一茤峖h蚨ç‘D,用æ“作符   ;,   &,   &&,  或  ||  分隔的åºåˆ—,
        並且å¯ä»¥é¸æ“‡ç”¨ ;, &, 或 <newline>æ–°è¡Œç¬¦çµæŸ.
 
        這些åºåˆ—æ“作符中,  &&  å’Œ  ||   優先級相åŒï¼Œå…¶æ¬¡æ˜¯   ;   å’Œ   &,   它-
        æ€ç‘°u先級是相åŒçš„。
 
        åºåˆ—中å¯ä»¥æœ‰ä¸€èŒ¤å³–h虓sè¡Œç¬¦ä¾†åˆ†éš”å‘½ä»¤ï¼Œè€Œä¸æ˜¯ä½¿ç”¨åˆ†è™Ÿåˆ†éš”。
 
        如果一茤R令是由控制æ“作符  &  çµæŸçš„, shell 將在Iæ™¯çš„å­ shell 中執行這-
        茤R令。   shell    䏿œƒç­‰å¾…å‘½ä»¤åŸ·è¡ŒçµæŸï¼Œè¿”回狀態總是    0。以分號    ;
        分隔的命令會被順åºåŸ·è¡Œï¼›shell                                 會等待æ¯-
        茤R令便¬¡çµæŸã€‚返回狀態是最後執行的命令的返回狀態。
 
        控制æ“作符 && å’Œ || 分別代表 AND å’Œ OR åºåˆ—。一 AND åºåˆ—çš„å½¢å¼æ˜¯
 
               command1 && command2
 
        command2 åªæœ‰åœ¨ command1 返回 0 時æ‰è¢«åŸ·è¡Œã€‚
 
        一 OR åºåˆ—çš„å½¢å¼æ˜¯
 
               command1 || command2
 
        command2  åªæœ‰åœ¨  command1   è¿”å›žéž   0   狀態時æ‰è¢«åŸ·è¡Œã€‚AND   å’Œ   OR
        åºåˆ—的返回狀態是åºåˆ—中最後執行的命令的返回狀態。
 
    Compound Commands        O
        compound command(復åˆå‘½ä»¤) 是如下情æ³ä¹‹ä¸€ï¼š
 
        (list) list    åºåˆ—將在一茪l    shell    中執行。變é‡è³¦ïŸ³M影響    shell
               環境變é‡çš„å…§å»ºå‘½ä»¤åœ¨å‘½ä»¤çµæŸå¾Œä¸æœƒå†èµ·ä½œç”¨ã€‚  返回Oåºåˆ—的返回-
               C
 
        { list; }
               list      åºåˆ—å°‡åœ¨ç•¶å‰      shell      環境中執行。åºåˆ—必須以一-
               虓sè¡Œç¬¦æˆ–åˆ†è™ŸçµæŸã€‚ é€™ç¨®åšæ³•也稱為 group  command(命令組)。返回-
               Oåºåˆ—的返回C注æ„與元字符  (  å’Œ    ä¸åŒï¼Œ { å’Œ } 是 reserved
               words(ä¿ç•™å­—),必須出ç¾åœ¨èƒ½å¤ è­˜åˆ¥ä¿ç•™å­—的場åˆã€‚          由於它-
               怳ㄦ|產生斷詞(cause a word break),它æ€Måºåˆ—之間必須用空格分開。
 
        ((expression))
               表é”å¼ expression  將被求C求W則在下悸         D (ARITHMETIC
               EVALUATION) 章節中æz。如果表é”å¼çš„D零,返回N是 0ï¼›å¦å‰‡è¿”回-
               O 1ã€‚é€™ç¨®åšæ³•å’Œ let "expression" 等價。
 
        [[ expression ]]
               返回   0   或   1ï¼Œå–æ±ºæ–¼æ¢ä»¶è¡¨é”å¼    expression    求滷〞p。
               表é”弿˜¯ç”±ä¸‹  CONDITIONAL  EXPRESSIONS                  章節中æzçš„-
               å„¢y(primaries)         組æˆã€‚         [[          å’Œ          ]]
               ä¸­çš„è©žä¸æœƒé€²è¡Œè©žçš„æ‹†åˆ†å’Œè·¯å¾‘的擴展處ç†ï¼›                 而tilde
               æ“´å±•ï¼Œåƒæ•¸å’Œè®Šé‡æ“´å±•,算術擴展,命令替æ›ï¼Œå‡½æ•¸æ›¿æ›å’Œå¼•用的去除則都將進行。
 
               當使用    ==   å’Œ   !=   æ“作符時,æ“作符å³é‚Šçš„字符串被èªç‚ºæ˜¯ä¸€-
               èšç‹¾ï¹›A根據下 Pattern Matching(模å¼åŒ¹é…) 章節中的è¦å‰‡é€²è¡ŒåŒ¹é…。
               如果匹é…則返回O                                    0,å¦å‰‡è¿”回
               1。模å¼çš„任何部分å¯ä»¥è¢«å¼•用,強制使它作為一茼r符串而被匹é…。
 
               表é”å¼å¯ä»¥ç”¨ä¸‹åˆ—æ“作符çµåˆèµ·ä¾†ã€‚根據優先級的飢ï“C出如下:
 
               ( expression )
                      返回表é”å¼                 expression                 çš„-
                      C括號å¯ä»¥ç”¨ä¾†æå‡æ“作符的優先級。
               ! expression
                      返回真,如果表é”å¼ expression 返回å‡ã€‚
               expression1 && expression2
                      返回真,如果表é”å¼ expression1 å’Œ expression2 都返回真。
               expression1 || expression2
                      返回真,如果表é”å¼     expression1    或者    expression2
                      二者之一返回真。
 
               &&(與) å’Œ || æ“ä½œç¬¦ä¸æœƒå°è¡¨é”å¼  expression2  求A如果  expres-
               sion1 å¯ä»¥æ±ºå®šæ•´è“囓顗ç«Få¼çš„返回爾隉C
 
        for name [ in word ] ; do list ; done
               in       之後的一系列詞會被擴展,產生一èˆç­‰åŸµCè¡¨ã€‚è®Šé‡      name
               è¢«ä¾æ¬¡è³¦ä»¥é€™èŒ¼C表中的æ¯èŒªè‘›åšA åºåˆ— list  æ¯æ¬¡éƒ½è¢«åŸ·è¡Œã€‚如果  in
               word   被忽略,那麼   for  命令鿭·  已設置的ä½ç½®åƒæ•¸(positional
               parameter,åƒè¦‹ä¸‹æ‚¸  PARAMETERS          A   為æ¯ä¸€èŒé¶¡ç’Š@次åºåˆ—
               list。             返回O最後一茤R令的返回C如果            in
               ä¹‹å¾Œçš„è©žæ“´å±•çš„çµæžœæ˜¯ç©ºåˆ—è¡¨ï¼Œå°±ä¸æœƒåŸ·è¡Œä»»ä½•命令,返回O 0。
 
        for (( expr1 ; expr2 ; expr3 )) ; do list ; done
               漸,算術表é”å¼  expr1  被根據下         D (ARITHMETIC  EVALUA-
               TION  u   中的è¦å‰‡é€²è¡Œæ±‚C   然後算術表é”å¼   expr2   被循環求-
               A直到它等於 0ã€‚æ¯æ¬¡  expr2  çµæžœéžé›¶æ™‚,åºåˆ—  list  都被執行,
               算術表é”å¼ expr3 被求C如果任何表é”å¼è¢«å¿½ç•¥ï¼Œå°‡è¢«è¦–ç‚ºåŸ·è¡Œçµæžœæ˜¯
               1。   返回Oåºåˆ—   list    中被執行的最後一茤R令的返回F或者是
               false,如果任何表é”å¼éžæ³•的話。
 
        select name [ in word ] ; do list ; done
               in                  之後的一系列詞會被擴展,產生一èˆç­‰åŸµC表。這-
               èš‹X展後的詞集åˆè¢«è¼¸å‡ºåˆ°æ¨™æº–錯誤上,æ¯èŒ·e  加上一èšïš¶r。如果  in
               word  被忽略,將輸出ä½ç½®åƒæ•¸  (åƒè¦‹ä¸‹æ‚¸ PARAMETERS    數章節)。
               PS3         æç¤ºç¬¦å°‡è¢«é¡¯ç¤ºå‡ºä¾†ï¼Œç­‰å¾…從標準輸入得到一行輸入。如果
               輸入是一èšïš¶rä¸”é¡¯ç¤ºä¸­æœ‰å°æ‡‰çš„è©žï¼Œé‚£éº¼è®Šé‡   name  的N設置為這-
               茧。如果輸入一-
               茠臟ç¢A那麼詞和æç¤ºç¬¦å°‡å†æ¬¡é¡¯ç¤ºå‡ºä¾†ã€‚如果讀入了一
               EOFï¼Œå‘½ä»¤å°±çµæŸã€‚            任何其他Nè¨­ç½®è®Šé‡            name
               為空。讀入的行ä¿å­˜ç‚ºè®Šé‡         REPLY.         åºåˆ—        list
               åœ¨æ¯æ¬¡é¸æ“‡ä¹‹å¾Œéƒ½æœƒåŸ·è¡Œï¼Œç›´åˆ°åŸ·è¡Œäº†ä¸€   break   命令。    select
               的退出狀態是åºåˆ—               list              中執行的最後一-
               茤R令的退出狀態,如果沒有執行命令就是 0。
 
        case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
               case  命令漸擴展  word,  ç„¶å¾Œä¾æ¬¡è©¦è‘—ç”¨æ¯  pattern  來匹é…它,
               使用與路徑擴展相åŒçš„匹é…è¦å‰‡(åƒè¦‹ä¸‹æ‚¸     Pathname    Expansion
                        i     章節)。如果找到一茪ït,相應的åºåˆ—將被執行。找到一-
               茪ïtä¹‹å¾Œï¼Œä¸æœƒå†å˜—試其後的匹é…。  如果沒有模å¼å¯ä»¥åŒ¹é…,返回O
               0。å¦å‰‡ï¼Œè¿”回åºåˆ—中最後執行的命令的返回C
 
        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,直到åºåˆ—中最後一茤R令返回 0。
               until 命令和 while  å‘½ä»¤ç­‰åƒ¹ï¼Œé™¤äº†å°æ¢ä»¶çš„æ¸¬è©¦æ°å¥½ç›¸åï¼›åºåˆ—  do
               list  執行直到åºåˆ—中最後一茤R令返回éžé›¶ç‹€æ…‹ïŸ«C  while  å’Œ  until
               命令的退出狀態是åºåˆ— do  list  中最後一茤R令的退出狀態,  或者是
               0,如果沒有執行任何命令。
 
        [ function ] name () { list; }
               這樣å¯ä»¥å®šç¾©ä¸€èŒ¼W為  name  的函數。函數體  body  是包å«åœ¨ { å’Œ }
               之間的命令åºåˆ— list。 在指定將  name  作為一茤R令é‹è¡Œçš„å ´åˆï¼Œé€™-
               èï“C將被執行。
               函數的退出狀態是函數體最後執行的命令的退出狀態(åƒè¦‹ä¸‹æ‚¸   FUNC-
               TIONS    數章節)。
 
     (COMMENTS)
        在éžäº¤äº’çš„  shell  中或者使用內建命令 shopt 啟用了 interactive_comments
        é¸é …的交互的        shell        中,以        #        起始的詞使得這-
        茧和所有åŒä¸€è¡Œä¸Šæ‰€æœ‰å‰©é¤˜çš„字符都被忽略。沒有啟用  interactive_comments
        é¸é …çš„äº¤äº’å¼ shell ä¸å…è¨±å‡ºç¾æ³¨é‡‹ã€‚這蚇龠策bäº¤äº’å¼ shell 中是é è¨­å•Ÿç”¨çš„
        (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN COMMANDS) 章節)。
 
       (QUOTING)
        引用                                                            Quoting
        用來去掉特定字符或詞的特殊æ„義。引用å¯ä»¥ç”¨ä¾†ç¦æ­¢å°ç‰¹æ®Šå­—符的處ç†ï¼Œ
        阻止ä¿ç•™å­—è¢«è­˜åˆ¥ï¼Œé‚„ç”¨ä¾†é˜»æ­¢åƒæ•¸çš„æ“´å±•。
 
        上惘b  DEFINITIONS     q  中列出的æ¯èŒªè’‚r符  metacharacters  å°æ–¼ shell
        都有特殊æ„義。如果n表é”它的本義,必須引用它。
 
        åœ¨ä½¿ç”¨å‘½ä»¤è¡Œæ­·å²æ“´å±•功能時,history       expansion        字符,通常是
        !,必須被引用,æ‰ä¸æœƒé€²è¡Œæ­·å²æ“´å±•。
 
        有三種引用機制:轉義字符 (escape character), 單引號和雙引號。
 
        一茈撲Qå¼•ç”¨çš„åæ–œæ§“  (\)  是轉義字符 escape character。 它ä¿ç•™å…¶å¾Œä¸‹ä¸€-
        茼r符的字æ§N義,除éžé‚£æ˜¯ä¸€è™“s行符。               如果                \
        和新行符æˆå°å‡ºç¾ï¼Œä¸¦ä¸”åæ–œæ§“自豕S有被引用,那麼              \<newline>
        被視為續行標誌 (æ„æ€æ˜¯ï¼Œå®ƒè¢«å¾žè¼¸å…¥æµä¸­åˆªé™¤ä¸¦å¿½ç•¥äº†)。
 
        將字符放在單引號之中,將ä¿ç•™å¼•用中所有字符的字-
        æ§N義。單引號ä¸èƒ½åŒ…å«åœ¨å–®å¼•號引用之中,å³ä½¿å‰æ‚¼[ä¸Šäº†åæ–œæ§“。
 
        å°‡å­—ç¬¦æ”¾åœ¨é›™å¼•è™Ÿä¸­ï¼ŒåŒæ¨£ä¿ç•™æ‰€æœ‰å­—符的字æ§Nç¾©ï¼Œä¾‹å¤–çš„æƒ…æ³æ˜¯  $,  `,  å’Œ
        \。   字符    $    å’Œ    `    在雙引號中ä»ç„¶å…·æœ‰ç‰¹æ®Šæ„ç¾©ã€‚åæ–œæ§“åªæœ‰å¾Œ-
        惇Oä¸‹åˆ—å­—ç¬¦æ™‚æ‰æœ‰ç‰¹æ®Šæ„義:    $,    `,    ",    \,    或    <newline>.
        雙引號å¯ä»¥åŒ…å«åœ¨é›™å¼•號引用中,但nåœ¨å‰æ‚¼[上一茪炱袟b。
 
        ç‰¹æ®Šçš„åƒæ•¸  *  å’Œ  @  在雙引號中有特殊æ„義(åƒè¦‹ä¸‹æ‚¸  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   一茪K比特字符,它的O八進制 nnn (一到三èšïš¶r)。
               \xHH   一茪K比特字符,它的Oå六進制        HH        (一到兩-
                      茪Q六進制數字)。
               \cx    一 ctrl-x 字符
 
        æ“´å±•çµæžœæ˜¯å–®å¼•è™Ÿå¼•ç”¨çš„ï¼Œå°±å¥½åƒ $ 符號ä¸å­˜åœ¨ä¸€æ¨£ã€‚
 
        é›™å¼•è™Ÿå¼•ç”¨å­—ç¬¦ä¸²å‰æ‚¼[上一   $    符號將使得這茼r符串被根據當å‰èªžè¨€ç’°å¢ƒ
        (locale)  來翻譯。  如果當å‰èªžè¨€ç’°å¢ƒæ˜¯  C 或者 POSIX,這茞顫僚N被忽略。
        如果這茼r符串被翻譯並替æ›äº†ï¼Œé‚£éº¼æ›¿æ›çµæžœæ˜¯é›™å¼•號引用的。
 
       (PARAMETERS)
        ä¸€èŒæŠ   parameter   是一蚗x存犒篘憿C它å¯ä»¥æ˜¯ä¸€èŒ¼W稱    name,    一-
        èšïš¶r或者是下 Special Parameters             章節中列出的特殊字符之一。從
        shell 的角度來看,一蚥僆q  variable  是一茈æ‚W稱  name  ä»£è¡¨çš„åƒæ•¸ã€‚一-
        蚥僆q有一蚧   value   以åŠé›¶èŒ¤å³–hèš…æ£  attibutes。屬性å¯ä»¥ä½¿ç”¨å…§å»ºå‘½ä»¤
        declare 來設置(åƒè¦‹ä¸‹ shell            O(SHELL BUILTIN COMMANDS)  章節中å°
        declare çš„æz)。
 
        å¦‚æžœçµ¦ä¸€èŒæŠï›æ…’,那麼它就被定義了。空字符串是有效的C一旦一-
        蚥僆q被定義了,它åªèƒ½ç”¨å…§å»ºå‘½ä»¤     unset     來喿¶ˆ(åƒè¦‹ä¸‹      shell
                   O(SHELL BUILTIN COMMANDS) 章節).
 
        一蚥僆q variable å¯ä»¥ç”¨é€™æ¨£çš„語å¥å½¢å¼ä¾†è³¦ïŸ«G
 
               name=[value]
 
        如果沒有給出      value  A      變é‡å°±è¢«è³¦ç‚ºç©ºå­—符串。所有      values
        都經éŽäº†æ³¢æµªç·šæ“´å±•ï¼Œåƒæ•¸å’Œè®Šé‡æ“´å±•,命令替æ›ï¼Œç®—術擴展和引用的刪除(åƒè¦‹ä¸‹-
        悸 EXPANSION    i 章節)。如果變é‡è¨­ç½®äº† integer    數屬性,那麼 value
        將進行算術擴展,å³ä½¿æ²’有應用 $((...)) 擴展 (åƒè¦‹ä¸‹æ‚¸ Arithmetic Expan-
        sion           i  章節)。  䏿œƒé€²è¡Œè©žçš„æ‹†åˆ†ï¼Œé™¤éžæ˜¯ä¸‹ Special Parameters
                           中æåˆ°çš„         "$@"。         䏿œƒé€²è¡Œè·¯å¾‘的擴展。賦-
        ï …yå¥ä¹Ÿå‡ºç¾åœ¨ä¸‹åˆ—å…§å»ºå‘½ä»¤ä¸­ï¼Œä½œç‚ºå®ƒæ€æ»ŒæŠïš±G  declare, typeset, export,
        readonly, 和 local 。
 
    Positional Parameters             
        ä½ç½®åƒæ•¸    positional    parameter     是以一或多èšïš¶rä»£è¡¨çš„åƒæ•¸ï¼Œé™¤äº†
        0。ä½ç½®åƒæ•¸æ˜¯åœ¨  shell  å•Ÿå‹•æ™‚ï¼Œæ ¹æ“šå®ƒçš„åƒæ•¸ä¾†è³¦ïŸ´æ»¿A  也å¯ä»¥ç”¨å…§å»ºå‘½ä»¤
        set 來å¥s賦Cä½ç½®åƒæ•¸ä¸èƒ½ç”¨è³¦ï …yå¥ä¾†è³¦ïŸ«C在一  shell  函數被執行的時-
        唌Aä½ç½®åƒæ•¸æœƒè¢«æš«æ™‚åœ°æ›¿æ›æŽ‰ (åƒè¦‹ä¸‹æ‚¸ FUNCTIONS    數章節)。
 
        ç•¶ä½ç½®åƒæ•¸ç”±å…©èŒˆHä¸Šçš„æ•¸å­—æ§‹æˆæ™‚,它必須放在括號內  (åƒè¦‹ä¸‹æ‚¸ EXPANSION
           i 章節)。
 
    Special Parameters             
        shell å°ä¸€äº›åƒæ•¸åšç‰¹æ®Šè™•ç†ã€‚é€™äº›åƒæ•¸åªèƒ½è¢«å¼•用而ä¸èƒ½è¢«è³¦ïŸ«C
        *      擴展為ä½ç½®åƒæ•¸ï¼Œå¾ž  1  開始。如果擴展發生在雙引號中,它擴展為一-
               茧,Oå„èŒæŠïš±Aä»¥ç‰¹æ®Šè®Šé‡  IFS 的第一茼r符分隔。也就是說,"$*"
               等價於 "$1c$2c..."ï¼Œé€™è£ c æ˜¯è®Šé‡ IFS  的第一茼r符。如果沒有設置
               IF  A é‚£éº¼åƒæ•¸å°‡ç”¨ç©ºæ ¼åˆ†éš”。 IFS
        @      擴展為ä½ç½®åƒæ•¸ï¼Œå¾ž      1      開始。如果擴展發生在雙引號中,æ¯-
               èŒæŠï›ƒã„ N擴展為一茧。也就是說,  "$@"  等價於  "$1"  "$2"   ...
               如果ä½ç½®åƒæ•¸ä¸å­˜åœ¨ï¼Œ"$@" å’Œ $@ 擴展為空 (å³ï¼Œå®ƒæŠ­Q刪除了)。
        #      擴展為ä½ç½®åƒæ•¸çš„èšïš±A以å進制表示。
        ?      擴展為最近執行的å‰å°ç®¡é“的狀態。
        -      擴展為當å‰é¸é …標誌。標誌是在啟動時或以內建命令               set
               指定的,或者是 shell 自迅]置的 (例如é¸é … -i )。
        $      擴展為 shell 的進程 ID。在一 () å­ shell ä¸­ï¼Œå®ƒæ“´å±•ç‚ºç•¶å‰ shell
               çš„ 進程 ID è€Œä¸æ˜¯å­ shell 的。
        !      擴展為最近一次執行的I景 (異步) 命令的進程號。
        0      擴展為    shell   或者   shell   稿本的å稱。這蚥僆q是在   shell
               åˆå§‹åŒ–時設置的。如果    bash     是執行稿本檔案時啟動的,     $0
               將設置為那蚗仵蛌漲W稱。如果  bash  å•Ÿå‹•æ™‚çš„åƒæ•¸åŒ…å« -  A 那麼 $0
               被設置為啟動命令行被執行後的第一-
               èŒæŠïš±A如果有的話。å¦å‰‡ï¼Œå®ƒè¢«è¨­ç½®ç‚ºç”¨ä¾†å•Ÿå‹•                 bash
               的檔åï¼Œå°±æ˜¯åƒæ•¸ 0。
        _      shell    啟動時,設置為     shell     æˆ–åƒæ•¸ä¸­è¢«åŸ·è¡Œçš„     shell
               稿本的絕å°è·¯å¾‘å。        然後,在擴展時擴展為上一茤R令的最後一-
               èŒæŠïš±C它也被設置為被執行的æ¯èŒ¤R令的檔案全å並且     被設置到這-
               茤R令執行的環境當中。當檢查郵件時,這-
               èŒæŠïš»O存著正在檢查的郵件檔案的å稱。
 
    Shell Variables      q
        shell 定義了下列變é‡ï¼š
 
        BASH   æ“´å±•ç‚ºç”¨ä¾†å•Ÿå‹•ç•¶å‰ bash 實例的檔案全å。
        BASH_VERSINFO
               一茈u讀數組變é‡ï¼Œæˆä¿å­˜è‘—ç•¶å‰                              bash
               實例的版本信æ¯ã€‚賦予數組元素的O如下這些:
               BASH_VERSINFO[0]        主版本號 (release).
               BASH_VERSINFO[1]        次版本號 (version).
               BASH_VERSINFO[2]        補ä¸ç‰ˆæœ¬
               BASH_VERSINFO[3]        編譯信æ¯
               BASH_VERSINFO[4]        發佈時的狀態 (例如, beta1).
               BASH_VERSINFO[5]        MACHTYPE 孕x類型
 
        BASH_VERSION
               擴展為一茼r符串,æz了這 bash.  實例的版本。
 
        COMP_CWORD
               ${COMP_WORDS}       的索引,指å‘ç•¶å‰æ¸¸æ¨™ä½ç½®æ‰€åœ¨çš„詞。       這-
               蚥僆qåªæœ‰åœ¨è¢«å¯ç·¨ç¨‹è£œå…¨åŠŸèƒ½ (åƒè¦‹ä¸‹æ‚¸  Programmable  Completion
               章節) 調用的 shell 函數中æ‰å¯ç”¨ã€‚
 
        COMP_LINE
               ç•¶å‰å‘½ä»¤è¡Œã€‚這蚥僆qåªæœ‰åœ¨è¢«å‘½ä»¤è£œå…¨åŠŸèƒ½èª¿ç”¨çš„              shell
               函數和外部命令中æ‰å¯ç”¨ã€‚
 
        COMP_POINT
               ç›¸å°æ–¼ç•¶å‰å‘½ä»¤èµ·å§‹è™•çš„ç•¶å‰æ¸¸æ¨™ä½ç½®ã€‚å¦‚æžœç•¶å‰æ¸¸æ¨™ä½ç½®æ˜¯ç•¶å‰å‘½ä»¤çš„æœ«ç«¯ï¼Œ
               它的Nå’Œ ${#COMP_LINE} 相等。 這蚥僆qåªæœ‰åœ¨è¢«å‘½ä»¤è£œå…¨åŠŸèƒ½èª¿ç”¨çš„
               shell 函數和外部命令中æ‰å¯ç”¨ã€‚
 
        COMP_WORDS
               一èšï›‚桲僆q   (åƒè¦‹ä¸‹æ‚¸    Arrays(數組)一節),由當å‰å‘½ä»¤è¡Œçš„å„-
               茬瘚構æˆã€‚        這蚥僆qåªæœ‰åœ¨è¢«å‘½ä»¤è£œå…¨åŠŸèƒ½èª¿ç”¨çš„       shell
               函數中æ‰å¯ç”¨ã€‚
 
        DIRSTACK
               一-
               èšï›‚桲僆q,包å«ç•¶å‰ç›®éŒ„棧的內容。棧中的目錄排列的順åºå°±æ˜¯ç”¨å…§å»ºå‘½ä»¤
               dirs                顯示時的順åºã€‚å°é€™èšï›‚桲僆qçš„æˆè³¦ïŸ¯i以用來-
               蚹鼢怳中w有的目錄,但是n添加和刪除目錄就必須使用  內建命令 pushd
               å’Œ    pop  C    å°å®ƒè³¦ïŸ®ã„¦|改變當å‰ç›®éŒ„ã€‚å¦‚æžœå–æ¶ˆäº†     DIRSTACK
               的定義,它就失去了它的特殊æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        EUID   擴展為當å‰ä½¿ç”¨è€…的有效使用者            ID。它在           shell
               啟動時設置。它是åªè®€çš„。
 
        FUNCNAME
               ç•¶å‰åŸ·è¡Œçš„     shell     函數å。這蚥僆qåªæœ‰åœ¨åŸ·è¡Œä¸€      shell
               å‡½æ•¸æ™‚å­˜åœ¨ã€‚å‘  FUNCNAME  賦S有效果並且返回一蚇欞~ã€‚å¦‚æžœå–æ¶ˆäº†
               FUNCNAME 的定義,它就失去了特殊的æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        GROUPS 一èšï›‚桲僆q,包å«ç•¶å‰ä½¿ç”¨è€…æ‰€å±¬çš„çµ„çš„åˆ—è¡¨ã€‚å‘     GROUPS     賦-
               S有效果並且返回一蚇欞~ã€‚å¦‚æžœå–æ¶ˆäº†                      GROUPS
               的定義,它就失去了特殊的æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        HISTCMD
               ç•¶å‰å‘½ä»¤çš„æ­·å²ç·¨è™Ÿï¼Œæˆ–者歷å²åˆ—è¡¨ä¸­çš„ç´¢å¼•ã€‚å¦‚æžœå–æ¶ˆäº†     HISTCMD
               的定義,它就失去了特殊的æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        HOSTNAME
               自動設置為當å‰çš„主機å。
 
        HOSTTYPE
               自動設置為一茼r符串,唯一地標識著正在é‹è¡Œ bash 的機器類型。é è¨­-
               O系統相關的。
 
        LINENO æ¯æ¬¡å¼•ç”¨é€™èŒæŠï𾿰¶Ashell                           將它替æ›ç‚ºä¸€-
               茷示在稿本或函數中當å‰è¡Œè™Ÿçš„å進制數字(從       1       é–‹å§‹)。
               å¦‚æžœä¸æ˜¯åœ¨ç¨¿æœ¬æˆ–函數中,替æ›å¾—到的ㄓ@定有æ„ç¾©ã€‚å¦‚æžœå–æ¶ˆäº†
               LINENO 的定義,它就失去了特殊的æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        MACHTYPE
               自動設置為一茼r符串,完整的æz了正在é‹è¡Œ                    bash
               çš„ç³»çµ±é¡žåž‹ï¼Œæ ¼å¼æ˜¯æ¨™æº–çš„  GNU   cpu-company-system   æ ¼å¼ã€‚é è¨­-
               O系統相關的。
 
        OLDPWD 上一次命令 cd 設置的工作目錄。
 
        OPTARG 內建命令   getopts   處ç†çš„æœ€å¾Œä¸€èš‡é¾ ç²¥æŠï›˜   (åƒè¦‹ä¸‹æ‚¸   shell
                          O(SHELL BUILTIN COMMANDS) 章節)。
 
        OPTIND 內建命令  getopts   將處ç†çš„ä¸‹ä¸€èŒæŠïšºæ»²è–‘   (åƒè¦‹ä¸‹æ‚¸   shell
                          O(SHELL BUILTIN COMMANDS) 章節)。
 
        OSTYPE 自動設置的一茼r符串,æz了正在é‹è¡Œ     bash    的作業系統。é è¨­-
               O系統相關的。
 
        PIPESTATUS
               一èšï›‚桲僆q           (åƒè¦‹ä¸‹æ‚¸           Arrays              組
               章節)ï¼ŒåŒ…å«æœ€è¿‘執行的å‰å°ç®¡é“中的進程(å¯èƒ½åªåŒ…å«ä¸€-
               茤R令)的退出狀態。
 
        PPID   shell 的父進程的進程號。這蚥僆q是åªè®€çš„。
 
        PWD    ç”± cd 命令設置的當å‰å·¥ä½œç›®éŒ„。
 
        RANDOM æ¯æ¬¡å¼•ç”¨é€™èŒæŠï𾿰¶A都會產生一        0         到         32767
               之間的隨機整數。å¯ä»¥é€šéŽå‘               RANDOM              賦-
               茠é´l化隨機數åºåˆ—ã€‚å¦‚æžœå–æ¶ˆäº†                           RANDOM
               的定義,它就失去了特殊的æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        REPLY  變é‡çš„N作為內建命令 read çš„è¼¸å…¥ï¼Œå¦‚æžœå‘½ä»¤æ²’æœ‰åƒæ•¸çš„話。
 
        SECONDS
               æ¯æ¬¡å¼•ç”¨é€™èŒæŠï𾿰¶A返回  shell  自é‹è¡Œä»¥ä¾†çš„ç§’æ•¸ã€‚å¦‚æžœå‘ SECONDS
               賦A此後å°å®ƒçš„引用將返回自賦仱_的秒數加上所賦予的Cå¦‚æžœå–æ¶ˆ
               SECONDS 的定義,它就失去了特殊的æ„義,å³ä½¿å¾Œä¾†å¥s定義它。
 
        SHELLOPTS
               一茷_號分隔的被å…許的   shell  é¸é …列表。列表中æ¯èŒ§éƒ½æ˜¯å…§ç½®å‘½ä»¤
               set çš„ -o é¸é …çš„æœ‰æ•ˆåƒæ•¸ã€‚  SHELLOPTS  中出ç¾çš„é¸é …也是  set  -o
               顯示為     on     çš„é¸é …。如果     bash    啟動時從環境中找到這-
               蚥僆q,那麼在讀å–任何é…置檔案之å‰ï¼Œåˆ—表中的æ¯-
               蚇龠絨ㄠN被設置。這蚥僆q是åªè®€çš„。
 
        SHLVL  æ¯æ¬¡å•Ÿå‹•一 bash 的實例時都會增加。
 
        UID    擴展為當å‰ä½¿ç”¨è€…çš„ ID,在啟動時åˆå§‹åŒ–。這蚥僆q是åªè®€çš„。
 
        下列變é‡è¢« shell 使用。有時 bash 會為變é‡è³¦é è¨­ïŸ«F這些情æ³åœ¨ä¸‹æ§|標出。
 
        BASH_ENV
               如果    bash    在執行一    shell    稿本時設定了這蚥僆q,它的-
               N被解釋為一蚗犰W,    包å«è‘—åˆå§‹åŒ–    shell   用到的命令,就åƒ
               ~/.bashrc    中一樣。     BASH_ENV     的b被解釋為一蚗犰W之å‰-
               nç¶“éŽåƒæ•¸æ“´å±•,命令替æ›å’Œç®—è¡“æ“´å±•ã€‚ä¸æœƒä½¿ç”¨                 PATH
               ä¾†æŸ¥æ‰¾çµæžœæª”å。
        CDPATH 命令 cd çš„æœç´¢è·¯å¾‘。這是一茷_號分隔的目錄列表,shell 從中查找 cd
               命令的目標目錄。å¯ä»¥æ˜¯é€™æ¨£ï¼š ".:~:/usr".
        COLUMNS
               用在內建命令   select   ç•¶ä¸­ï¼Œç”¨ä¾†åˆ¤æ–·è¼¸å‡ºé¸æ“‡åˆ—表時的終端寬度。
               自動根據 SIGWINCH 信號來設置。
        COMPREPLY
               一èšï›‚桲僆q,bash                       從中讀å–å¯èƒ½çš„命令補全。
               它是由命令補全功能調用的 shell 函數產生的。
        FCEDIT 內建命令 fc é è¨­çš„編輯器。
        FIGNORE
               一茷_號分隔的延伸檔åå列表,在進行檔å補全時被忽略   (åƒè¦‹ä¸‹æ‚¸
               READLINE                                              章節)。一-
               茤策钀犰W滿足其中之一的檔å被排除在匹é…的檔å之外。å¯ä»¥æ˜¯é€™æ¨£ï¼š
               ".o:~".
        GLOBIGNORE
               一茷_號分隔的模å¼åˆ—è¡¨ï¼Œå®šç¾©äº†è·¯å¾‘åæ“´å±•時n忽略的檔å集åˆã€‚
               如果一蚗犰W與路徑擴展模å¼åŒ¹é…ï¼ŒåŒæ™‚åŒ¹é…    GLOBIGNORE    中的一-
               èšç‹¾ï¼†æ°¶A它被從匹é…列表中刪除。
        HISTCONTROL
               如果設置為           ignorespace,            以            space
               é–‹é ­çš„è¡Œå°‡ä¸æœƒæ’入到歷å²åˆ—表中。如果設置為           ignoredups,
               匹é…上一次歷å²è¨˜éŒ„çš„è¡Œå°‡ä¸æœƒæ’入。設置為              ignoreboth
               會çµåˆé€™å…©ç¨®é¸é …。如果沒有定義,或者設置為其他-
               A所有解釋器讀å–的行都將存入歷å²åˆ—表,   但還nç¶“éŽ   HISTIGNORE
               處ç†ã€‚這蚥僆q的作用å¯ä»¥è¢«                             HISTIGNORE
               替代。多行的組åˆå‘½ä»¤çš„ç¬¬äºŒå’Œå…¶é¤˜è¡Œéƒ½ä¸æœƒè¢«æª¢æ¸¬ï¼Œä¸ç®¡ HISTCONTROL
               是什麼,都會加入到歷å²ä¸­ã€‚
        HISTFILE
               ä¿å­˜å‘½ä»¤æ­·å²çš„æª”å   (åƒè¦‹ä¸‹æ‚¸   HISTORY     v  章節)。é è¨­ïŸ¶O
               ~/.bash_historyã€‚å¦‚æžœå–æ¶ˆå®šç¾©ï¼Œåœ¨äº¤äº’å¼       shell       退出時
               命令歷å²å°‡ä¸æœƒä¿å­˜ã€‚
        HISTFILESIZE
               æ­·å²æª”案中包å«çš„æœ€å¤§è¡Œæ•¸ã€‚當為這蚥僆q賦氶A如果需-
               nçš„è©±ï¼Œæ­·å²æª”案將被截斷            來容ç´ä¸è¶…éŽé€™èš§çš„行。é è¨­ïŸ¶O
               500ã€‚æ­·å²æª”æ¡ˆåœ¨äº¤äº’å¼ shell 退出時 也會被截斷到這蚧。
        HISTIGNORE
               一茷_號分隔的模å¼åˆ—表,用來判斷那-
               茤R令行應當ä¿å­˜åœ¨æ­·å²åˆ—表中。æ¯èšç‹¾   éƒ½å®šä½æ–¼è¡Œæ»¿Aå¿…é ˆåŒ¹é…æ•´è¡Œ
               (沒有å‡å®šæ·»åŠ   `*')。在  HISTCONTROL æŒ‡å®šçš„æ¸¬è©¦çµæŸå¾Œï¼Œé€™è£çš„æ¯-
               èšç‹¾â—‹Ï„被測試。除了弗`çš„  shell  模å¼åŒ¹é…字符,  `&'  匹é…上一-
               èšžå²è¡Œã€‚`&'                      å¯ä»¥ä½¿ç”¨åæ–œæ§“ä¾†è½‰ç¾©ï¼›åæ–œæ§“在
               嘗試匹é…之å‰å°‡è¢«åˆªé™¤ã€‚多行的組åˆå‘½ä»¤çš„第二行以åŠå¾ŒçºŒè¡Œéƒ½ä¸æœƒè¢«æ¸¬è©¦ï¼Œä¸ç®¡
               HISTIGNORE 是什麼,都將加入到歷å²ä¸­ã€‚
        HISTSIZE
               命令歷å²ä¸­ä¿å­˜çš„æ­·å²æ•¸é‡  (åƒè¦‹ä¸‹æ‚¸ HISTORY   v 章節)。é è¨­ïŸ¶O
               500。
        HOME   ç•¶å‰ä½¿ç”¨è€…的茪H目錄;內建命令                                 cd
               çš„é è¨­åƒæ•¸ã€‚在執行波浪線擴展時也用到這蚥僆q。
        HOSTFILE
               包å«ä¸€è‡ç’ã€M  /etc/hosts  相åŒçš„æª”å,當 shell 需nè£œå…¨ä¸»æ©Ÿåæ™‚-
               n讀å–它。shell                                        é‹è¡ŒéŽç¨‹ä¸­
               å¯ä»¥æ”¹è®Šå¯èƒ½çš„主機å補全列表;改變之後下一次需n主機å補全時 bash
               會將新檔案的內容添加到舊列表中。如果定義了 HOSTFILE  但是沒有賦-
               Abash                   å°‡å˜—è©¦è®€å–                  /etc/hosts
               檔案來ç²å¾—å¯èƒ½çš„主機åè£œå…¨åˆ—è¡¨ã€‚ç•¶å–æ¶ˆ                  HOSTFILE
               的定義時,主機å列表將清空。
        IFS    內部字段分隔符          Internal         Field         Separator
               用來在擴展之後進行分詞,使用內部命令 read  將行劃分æˆè©žã€‚é è¨­ïŸ¶O
               ``<space><tab><newline>''。
        IGNOREEOF
               æŽ§åˆ¶äº¤äº’å¼  shell  接å—到唯一一 EOF 字符時的行為。如果有定義,-
               O需n在一行的開始連續輸入 EOF 字符,直到å¯ä»¥ä½¿ bash 退出的字符-
               èšïš±C如果這蚥僆q存在,但是ㄛO一èšïš¶r或者沒有賦Aé è¨­ïŸ¶O  10。
               å¦‚æžœè®Šé‡æ²’有定義, EOF æ¨™èªŒè‘—è¼¸å…¥çš„çµæŸã€‚
        INPUTRC
               readline  的啟動é…ç½®æª”æ¡ˆï¼Œè€Œä¸æ˜¯é è¨­çš„   ~/.inputrc   (åƒè¦‹ä¸‹æ‚¸
               READLINE 章節)。
        LANG   用來決定沒有特地用 LC_ è®Šé‡æŒ‡å®šçš„語言環境項。
        LC_ALL 這蚥僆q超越了 LANG 和所有其他指定語言環境項的 LC_ 變é‡ã€‚
        LC_COLLATE
               這蚥僆qæ±ºå®šäº†ç‚ºè·¯å¾‘æ“´å±•çš„çµæžœæŽ’åºæ™‚的字æ¯é †åºï¼Œæ±ºå®šäº†-
               Såœè¡¨é”å¼çš„行為, 等價類,和路徑擴展中的歸並順åºä»¥åŠæ¨¡å¼åŒ¹é…。
        LC_CTYPE
               這蚥僆qæ±ºå®šäº†å­—ç¬¦çš„è§£é‡‹å’Œè·¯å¾‘æ“´å±•ä»¥åŠæ¨¡å¼åŒ¹é…中字符類的行為。
        LC_MESSAGES
               這蚥僆q決定了翻譯以 $ å‰å°Žçš„雙引號字符串時的語言環境。
        LC_NUMERIC
               這蚥僆q決定了格å¼åŒ–數字時的語言環境分類。
        LINES  內建命令  select  ç”¨å®ƒä¾†åˆ¤æ–·è¼¸å‡ºé¸æ“‡åˆ—表時的列寬度。在收到  SIG-
               WINCH 信號時自動設置。
        MAIL   å¦‚æžœé€™èŒæŠï›ƒ]置為一蚗犰Wï¼Œä¸¦ä¸”æ²’æœ‰è¨­ç½®ç’°å¢ƒè®Šé‡  MAILPATH  的話,
               bash 將在這蚗仵蚺仇q知使用者有郵件到é”。
        MAILCHECK
               指定 bash 檢查郵件的頻率是多少,以秒為單ä½ã€‚é è¨­ïŸ¶O  60  秒。需-
               n檢查郵件的時唌Ashell               在顯示æç¤ºç¬¦ä¹‹å‰å°‡é€²è¡Œæª¢æŸ¥ã€‚
               å¦‚æžœå–æ¶ˆå®ƒçš„定義,或者設置為並éžå¤§æ–¼ç­‰æ–¼é›¶çš„æ•¸ïŸ«Ashell
               å°‡ç¦æ­¢éƒµä»¶æª¢æŸ¥ã€‚
        MAILPATH
               一茷_號分隔的檔ååˆ—è¡¨ï¼Œå¾žä¸­æª¢æŸ¥éƒµä»¶ã€‚ç•¶éƒµä»¶åˆ°é”æŸ-
               è…S殊檔案中時,輸出的特定消æ¯å¯ä»¥     通éŽå°‡æª”å與消æ¯ä»¥     `?'
               分隔來指定。 在消æ¯çš„æ–‡æœ¬ä¸­ï¼Œ$_ 擴展為當å‰éƒµä»¶æª”案的檔å。例如:
               MAILPATH='/var/mail/bfox?"You  have  mail":~/shell-mail?"$_  has
               mail!"'
               Bash                                          為這蚥僆qæä¾›é è¨­-
               A但是它使用的使用者郵件檔案的ä½ç½®æ˜¯ç³»çµ±ç›¸é—œçš„
               (例如,/var/mail/$USER)。
        OPTERR 如果設置為 1, bash 顯示內建命令 getopts ç”¢ç”Ÿçš„éŒ¯èª¤æ¶ˆæ¯ (åƒè¦‹ä¸‹-
               悸 shell            O(SHELL  BUILTIN  COMMANDS)  章節)ã€‚æ¯æ¬¡  shell
               啟動時或者一 shell 稿本被執行時 OPTERR 被åˆå§‹åŒ–為 1。
        PATH   æœç´¢å‘½ä»¤çš„路徑。它是一茷_號分割的目錄列表,shell    從中æœç´¢å‘½ä»¤
               (åƒè¦‹ä¸‹æ‚¸                       (COMMAND              EXECUTION)
               段è½)。é è¨­çš„è·¯å¾‘æ˜¯ç³»çµ±ç›¸é—œçš„ï¼Œæ˜¯ç”±å®‰è£     bash     的系統管ç†-
               設置的。通常它的O
               ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.''。
        POSIXLY_CORRECT
               如果   bash  啟動環境中有這蚥僆q,它將在讀å–啟動é…置檔案之å‰é€²å…¥
               posix  modeï¼Œå°±å¥½åƒæä¾›äº†   --posix   å•Ÿå‹•åƒæ•¸ä¸€æ¨£ã€‚如果   shell
               é‹è¡ŒéŽç¨‹ä¸­è¨­ç½®äº†å®ƒï¼Œbash  就啟用 posix mode,就好åƒåŸ·è¡Œäº† set -o
               posix 命令一樣。
        PROMPT_COMMAND
               如果有定義,它的N作為一茤Rä»¤ï¼Œæ¯æ¬¡é¡¯ç¤ºä¸»æç¤ºç¬¦ä¹‹å‰éƒ½æœƒåŸ·è¡Œã€‚
        PS1    é€™èŒæŠïšºç˜“被擴展       (åƒè¦‹ä¸‹æ‚¸        PROMPTING               符
               段è½),用作主æç¤ºç¬¦å­—符串。é è¨­ïŸ¶O ``\s-\v\$ ''。
        PS2    é€™èŒæŠïšºç˜“åŒ   PS1  一起被擴展,用作次æç¤ºç¬¦å­—符串。é è¨­ïŸ¶O  ``>
               ''。
        PS3    é€™èŒæŠïšºç˜“被用作內建命令 select çš„æç¤ºç¬¦ (åƒè¦‹ä¸Šæ‚¸ SHELL  GRAM-
               MAR    k 章節)。
        PS4    é€™èŒæŠïšºç˜“åŒ   PS1   一起被擴展,在執行跟蹤中在   bash   顯示æ¯-
               茤R令之å‰é¡¯ç¤ºã€‚需n的話,   PS4   的第一茼r符會被複製多次,來指示
               indirection 的層數。é è¨­ïŸ¶O ``+ ''。
        TIMEFORMAT
               在å‰ç¶´   time  ä¿ç•™å­—的管é“ä¸­ï¼Œé€™èŒæŠïšºç˜“用作格å¼å­—符串,  指定-
               p時信æ¯å¦‚何顯示。字符      %       引入的轉義åºåˆ—,被擴展為時間
               或其他信æ¯ã€‚轉義åºåˆ—å’Œå®ƒæ€æ¼£t義如下所示;括號中是å¯é¸çš„æˆåˆ†ã€‚
               %%        一茼r惜W的 %。
               %[p][l]R  經歷的時間,以秒p算。
               %[p][l]U  CPU 在使用者模å¼ä¸‹åŸ·è¡Œçš„秒數。
               %[p][l]S  CPU 在系統模å¼ä¸‹åŸ·è¡Œçš„秒數。
               %P        CPU 使用率,算法是 (%U + %S) / %R。
 
               å¯é¸çš„   p   是指定精度   (å°æ•¸é»žå¾Œæ•¸å­—使•¸)  的數C  如果是  0
               å°±ä¸è¼¸å‡ºå°æ•¸é»žæˆ–å°æ•¸ïŸ«Cæœ€å¤šæŒ‡å®šåˆ°å°æ•¸é»žå¾Œä¸‰ä½ï¼› 如果  p  大於  3
               就會被改為 3。如果沒有指定 p,é è¨­ä½¿ç”¨ 3。
 
               å¯é¸çš„   l   指定了長格å¼ï¼ŒåŒ…å«åˆ†é˜ï¼Œæ ¼å¼æ˜¯  MMmSS.FFs。  p  çš„-
               Må®šäº†æ˜¯ä¸æ˜¯åŒ…å«å°æ•¸ä½ã€‚
 
               如果沒有設置這蚧,bash                               å‡å®šå®ƒçš„O
               $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'。  如果它是空A就䏿œƒé¡¯ç¤º-
               p時信æ¯ã€‚顯示格å¼å­—符串的時唌A會加上 一茷e導的新行符。
 
        TMOUT  如果設置為大於  0  的ATMOUT  被當作內建命令  read   çš„é è¨­è¶…時
               等待時間。如果等待終端輸入時, TMOUT 秒之後ä»ç„¶æ²’有輸入, select
               命令將終止。在交互的        shell        中,它的Q解釋為顯示了
               主æç¤ºç¬¦ä¹‹å¾Œç­‰å¾…輸入的秒數。如果經éŽé€™èŒ¯ç¯²ïš´å¦¨å¶€æ–¯M沒有輸入,
               Bash 將退出。
 
        auto_resume
               這蚥僆q控制了  shell   如何與使用者和作業控制交互。如果設置了這-
               蚥僆q,                                      一茪ㄔ]å«å’¿wå‘的單-
               茧的簡單命令,將作為æ¢å¾©è¢«ä¸­æ–·çš„作業的指示。
               ä¸å…è¨±å‡ºç¾æ¨¡æ£±å…©å¯çš„æƒ…æ³ï¼›å¦‚果有多è@業都以這-
               茧起始,將æ¢å¾©æœ€è¿‘é‹è¡Œ     的作業。在這種情形下,被中斷的作業的
               name          是用於啟動它的命令行。如果]置為          exact  A
               給出的字符串必須精確匹é…被中斷的作業å;如果設置為   substring,
               給出的字符串需n匹é…被中斷的作業åçš„å­ä¸²ã€‚             substring
               的功能與作業標識符 %?  功能類似 (åƒè¦‹ä¸‹æ‚¸ JOB CONTROL         制
               章節)。如果設置為任何其他-
               A給出的字符串必須是被中斷的作業的å‰ç¶´ï¼›  這樣åšèˆ‡ä½œæ¥­æ¨™è­˜ç¬¦  %
               功能類似。
 
        histchars
               兩到三茼rç¬¦ï¼ŒæŽ§åˆ¶è‘—æ­·å²æ“´å±•和分段  (tokenization,åƒè¦‹ä¸‹æ‚¸ HIS-
               TORY  EXPANSION        i  章節)。第一茼r符是   history   expan-
               sion(æ­·å²æ“´å±•)  字符, 這茼rç¬¦è¡¨æ˜Žäº†æ­·å²æ“´å±•的開始,通常是 `!'。
               第二茼r符是   quick    substitution(快速替æ›)    字符,    它是-
               å¥sé‹è¡Œä¸Šæ¬¡è¼¸å…¥çš„命令,但將命令中的字符串替æ›ç‚ºå¦ä¸€èŒ ç”„票g,
               é è¨­æ˜¯       `^'。å¯é¸çš„第三茼r符是指示如果作為一茧的開始,那麼
               一行中剩餘字符是注釋。通常這茼r符是        `#'ã€‚æ­·å²æ³¨é‡‹å­—符使得
               å°ä¸€è¡Œä¸­å‰©é¤˜å­—ç¬¦åœ¨æ­·å²æ›¿æ›ä¸­è¢«è·³éŽã€‚它ä¸ä¸€å®šä½¿  shell   解釋器將
               這一行的剩餘部分當作注釋。
 
    Arrays
        Bash   æä¾›äº†ä¸€ç¶­æ•¸çµ„變é‡ã€‚任何變é‡éƒ½å¯ä»¥ä½œç‚ºä¸€èšï›‚æ¸F內建命令  declare
        å¯ä»¥é¡¯å¼åœ°å®šç¾©æ•¸çµ„ã€‚æ•¸çµ„çš„å¤§å°æ²’æœ‰ä¸Šï¼Œä¹Ÿæ²’æœ‰åˆ¶åœ¨é€£çºŒå°æˆå¼•用和     賦-
        犰酗åµçŠ¥æ±‚ã€‚æ•¸çµ„ä»¥æ•´æ•¸ç‚ºä¸‹æ¨™ï¼Œå¾ž 0 開始。
 
        如果變é‡è³¦ïŸ¸ç¦¸æ´å¼‡y法   name[subscript]=value,  那麼就會自動創建數組。
        subscript 被當作一蚨滼N表é”å¼ï¼Œçµæžœå¿…須是大於等於 0 的Cn顯å¼åœ°å®šç¾©ä¸€-
        èšï›‚æ¸A使用  declare  -a  name  (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN
        COMMANDS) 章節)。也å¯ä»¥ç”¨ declare -a  name[subscript]  這時   subscript
        被忽略。數組變é‡çš„屬性å¯ä»¥ç”¨å…§å»ºå‘½ä»¤  declare  å’Œ  readonly 來指定。æ¯-
        èš…æ£å¦é´­é¡ç‹¾é ƒï›‚掑葛應ㄕ陵纂C
 
        數組賦i以使用復åˆè³¦ïŸ´æ¼±é–¬ï¹›A形弿˜¯ name=(value1 ...  valuen)ï¼Œé€™è£æ¯
        value               的形å¼éƒ½æ˜¯               [subscript]=string。string
        必須出ç¾ã€‚如果出ç¾äº†å¯é¸çš„æ‹¬è™Ÿå’Œä¸‹æ¨™ï¼Œå°‡ç‚ºé€™èŒªU標賦Aå¦å‰‡        被賦-
        漱葛尷漱U標是語å¥ä¸­ä¸Šä¸€æ¬¡è³¦ïŸ´æ¼±U標加一。下標從     0    開始。    這-
        èš–y法也被內建命令   declare   所接å—。單ç¨çš„æ•¸çµ„元素å¯ä»¥ç”¨ä¸Šæƒœé›¯è¡ç„y法
        name[subscript]=value 來賦C
 
        數組的任何元素都å¯ä»¥ç”¨            ${name[subscript]}           來引用。
        花括號是必須的,以é¿å…和路徑擴展沖çªã€‚如果   subscript   是   @    或是
        *,它擴展為                       name                      的所有æˆã€‚
        é€™å…©ç¨®ä¸‹æ¨™åªæœ‰åœ¨é›™å¼•號中æ‰ä¸åŒã€‚在雙引號中,${name[*]}    擴展為一茧,
        由所有數組æˆçš„æ°èŠ‹Aç”¨ç‰¹æ®Šè®Šé‡   IFS  的第一茼r符分隔;${name[@]}  å°‡
        name         çš„æ¯èŒ¼å”擴展為一茧。          如果數組沒有æˆï¼Œ${name[@]}
        擴展為空串。這種ä¸åŒé¡žä¼¼æ–¼ç‰¹æ®Šåƒæ•¸  *  å’Œ  @  的擴展 (åƒè¦‹ä¸Šæ‚¸ Special
        Parameters   段è½)。${#name[subscript]}    擴展為    ${name[subscript]}
        的長度。如果   subscript   是   *   或者是   @ï¼Œæ“´å±•çµæžœæ˜¯æ•¸çµ„中元素的-
        èšïš±C引用沒有下標數組變é‡ç­‰åƒ¹æ–¼ 引用元素 0。
 
        內建命令 unset 用於銷毀數組。unset  name[subscript]  將銷毀下標是  sub-
        script  的元素。  unset name, é€™è£ name 是一èšï›‚æ¸A或者 unset name[sub-
        script], é€™è£ subscript 是 * 或者是 @,將銷毀整èšï›‚æ¸C
 
        內建命令 declare, local,  å’Œ  readonly  éƒ½èƒ½æŽ¥å—  -a  é¸é …,從而指定一-
        èšï›‚æ¸C內建命令  read å¯ä»¥æŽ¥å— -a é¸é …,從標準輸入讀入一列詞來為數組賦-
        C內建命令 set å’Œ declare 使用一種å¯ä»¥å’±å³Žå€æ“—J的格å¼ä¾†é¡¯ç¤ºæ•¸çµ„元素。
 
     i(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,   但是並ä¸éœ€n存在相應的檔案。    èŠ±æ‹¬è™Ÿæ“´å±•çš„æ¨¡å¼æ˜¯ä¸€èŒˆié¸çš„
        preamble(å‰å°Žå­—符), 後掘繺è‘@系列逗號分隔的字符串,包å«åœ¨ä¸€å°èŠ±æ‹¬è™Ÿä¸­ï¼Œ
        å†å¾Œæƒ‡O一茈ié¸çš„ postscript(附言)。  å‰å°Žè¢«æ·»åŠ åˆ°èŠ±æ‹¬è™Ÿä¸­çš„æ¯èŒ¼r符串å‰-
        情A附言被附加到æ¯èŒ§ç—•G字符串之後, 從左到å³é€²è¡Œæ“´å±•。
 
        花括號擴展å¯ä»¥åµŒå¥—ã€‚æ“´å±•å­—ç¬¦ä¸²çš„çµæžœæ²’有排åºï¼›è€Œæ˜¯ä¿ç•™äº†å¾žå·¦åˆ°å³çš„é †åºã€‚
        例如, a{d,c,b}e 擴展為 `ade ace abe'。
 
        花括號擴展是在任何其他擴展之å‰é€²è¡Œçš„,任何å°å…¶ä»–擴展有特殊æ„義的字符
        都ä¿ç•™åœ¨çµæžœä¸­ã€‚它是嚴格字惜W的。                                  Bash
        䏿œƒå°æ“´å±•的上下文或花括號中的文本åšä»»ä½•語義上的解釋。
 
        æ­£ç¢ºçš„èŠ±æ‹¬è™Ÿæ“´å±•å¿…é ˆåŒ…å«æ²’æœ‰å¼•ç”¨çš„å·¦æ‹¬è™Ÿå’Œå³æ‹¬è™Ÿï¼Œä»¥åŠè‡³å°‘一茖S有
        å¼•ç”¨çš„é€—è™Ÿã€‚ä»»ä½•ä¸æ­£ç¢ºçš„表é”å¼éƒ½ä¸æœƒè¢«æ”¹è®Šã€‚å¯ä»¥ç”¨å斜槓來引用  {  或 ,
        來阻止將它斻æ‚O為花括號表é”å¼çš„一部分。  為了é¿å…èˆ‡åƒæ•¸æ“´å±•æ²–çªï¼Œå­—符串
        ${ ä¸è¢«èªç‚ºæœ‰æ•ˆçš„組åˆã€‚
 
        é€™ç¨®çµæ§‹é€šå¸¸ç”¨ä¾†ç°¡å¯«å­—符串的公共å‰ç¶´é æ¯”上例中為長的情æ³ï¼Œä¾‹å¦‚:
 
               mkdir /usr/local/src/bash/{old,new,dist,bugs}
        或者:
               chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
 
        花括號擴展導P了與歷å²ç‰ˆæœ¬çš„                                          sh
        的一點ä¸ç›¸å®¹ã€‚åœ¨å·¦æ‹¬è™Ÿæˆ–å³æ‹¬è™Ÿä½œç‚ºè©žçš„ä¸€éƒ¨åˆ†å‡ºç¾æ™‚,    sh    䏿œƒå°å®ƒ-
        抾i行特殊處ç†ï¼Œæœƒåœ¨è¼¸å‡ºä¸­ä¿ç•™å®ƒæ€´C                                 Bash
        å°‡æ‹¬è™Ÿå¾žèŠ±æ‹¬è™Ÿæ“´å±•çµæžœçš„è©žä¸­åˆªé™¤ã€‚ä¾‹å¦‚ï¼Œå‘  sh  輸入  file{1,2}   會導-
        Pä¸è®Šçš„è¼¸å‡ºã€‚åŒæ¨£çš„輸入在   bash  進行擴展之後,會輸出  file1  file2  .
        如果需nåŒ sh åš´æ ¼åœ°ä¿æŒç›¸å®¹ï¼Œéœ€n在啟動 bash çš„æ™‚å”»æ´ +B é¸é …,或者使用
        set  命令加上  +B  é¸é …來ç¦ç”¨èŠ±æ‹¬è™Ÿæ“´å±• (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL
        BUILTIN COMMANDS) 章節)。
 
    Tilde Expansion
        如果一茧以沒有引用的波浪線字符 (`~') 開始,所有  在第一茖S有引用的斜線
        (`/')   之å‰çš„字符  (或者是這茧的所有字符,  如果沒有沒引用的斜線的話)
        都被èªç‚ºæ˜¯      tilde-prefix(波浪線å‰ç¶´)。      如果       tilde-prefix
        中沒有被引用的字符,那麼波浪線之後的字符串        被èªç‚ºæ˜¯        login
        name(登入å)ã€‚å¦‚æžœç™»å…¥åæ˜¯ç©ºå­—符串,波浪線將 被替æ›ç‚º shell  åƒæ•¸  HOME
        的C如果沒有定義     HOM  A     將替æ›ç‚ºåŸ·è¡Œæ­¤    shell    的使用者的-
        茪H目錄。å¦å‰‡ï¼Œtilde-prefix 被替æ›ç‚º 與指定登入å相è¯ç³»çš„茪H目錄。
 
        如果 tilde-prefix 是 `~+',將使用 shell è®Šé‡ PWD çš„ïŸ²è‹æ‡‚å“„C如果 tilde-
        prefix   是   `~-',並且設置了   shell   è®Šé‡   OLDPWD,  將使用這蚥僆q-
        ïŸ²è‹æ‡‚å“„C如果在   tilde-prefix   中,波浪線之後的字符串   由一èšïš¶r   N
        組æˆï¼Œå‰ç¶´å¯é¸çš„       `+'       或者       `-',那麼      tilde-prefix
        將被替æ›ç‚ºç›®éŒ„棧中相應的元素,就是將 tilde-prefix  ä½œç‚ºåƒæ•¸åŸ·è¡Œå…§å»ºå‘½ä»¤
        dirs      é¡¯ç¤ºçš„çµæžœã€‚如果     tilde-prefix     中波浪線之後的字符是一-
        èšïš¶r,沒有å‰ç¶´ï¼Œ 那麼就å‡å®šæœ‰ä¸€ `+'。
 
        如果登入åä¸åˆæ³•ï¼Œæˆ–è€…æ³¢æµªç·šæ“´å±•å¤±æ•—ï¼Œé€™èŒ§å°‡ä¸æœƒè®ŠåŒ–。
 
        在變é‡è³¦ïŸ®ä¸‘Aå°æ–¼ : 或 = ä¹‹å¾Œçš„å­—ç¬¦ä¸²æœƒç«‹å³æª¢æŸ¥æœªå¼•用的  tilde-prefix。
        這種情æ³ä¸‹ï¼Œä»ç„¶æœƒé€²è¡Œæ³¢æµªç·šæ“´å±•。因此,å¯ä»¥ä½¿ç”¨å¸¶æ³¢æµªç·šçš„æª”å來為
        PATH, MAILPATH, 和 CDPATH 賦Ashell 將賦予擴展之後的C
 
    Parameter Expansion
        字符    `$'     å¼•å…¥äº†åƒæ•¸æ“´å±•,命令替æ›å’Œç®—術擴展。næ“´å±•çš„åƒæ•¸å或符號
        å¯èƒ½åŒ…å«åœ¨èŠ±æ‹¬è™Ÿä¸­ï¼ŒèŠ±æ‹¬è™Ÿå¯é¸çš„,但是å¯ä»¥ä½¿å¾—n擴展的變é‡ä¸æœƒèˆ‡ç·Šéš¨å…¶å¾Œ
        的字符åˆä¸¦ï¼Œæˆç‚ºæ–°çš„å稱。
 
        使用花括號的時唌A匹é…çš„å³æ‹¬è™Ÿæ˜¯ç¬¬ä¸€        `}'ï¼Œä¸¦ä¸”å®ƒæ²’æœ‰è¢«åæ–œæ§“引用
        或包å«åœ¨ä¸€èŒªçŠå³ˆæ¼²r符串中,也沒有包å«åœ¨ä¸€è‹O入的算術擴展,命令替æ›
        æˆ–æ˜¯åƒæ•¸æ“´å±•中。
 
        ${parameter}
               被替æ›ç‚º      parameter      的C如果      parameter      是一-
               茼鼽måƒæ•¸ï¼Œä¸¦ä¸”æ•¸å­—å¤šæ–¼ä¸€ä½æ™‚;或者當緊隨              parameter
               之後有ä¸å±¬æ–¼å稱一部分的字符時,都必須加上花括號。
 
        如果 parameter 的第一茼r符是一虓P嘆號,將引進一層間接變é‡ã€‚ bash 使用以
        parameter                       的其餘部分為å的變é‡çš„@為變é‡çš„å稱;
        接下來新的變é‡è¢«æ“´å±•,它的峖b隨後的替æ›ç•¶ä¸­ï¼Œè€Œä¸æ˜¯ä½¿ç”¨     parameter
        自赤瘓。這也稱為   indirect  expansion(間接擴展).   ä¾‹å¤–æƒ…æ³æ˜¯ä¸‹æŽ„ç¸é´˜
        ${!prefix*}。
 
        下悸漕C種情æ³ä¸­ï¼Œword           都nç¶“éŽæ³¢æµªç·šæ“´å±•ï¼Œåƒæ•¸æ“´å±•,命令替æ›å’Œ
        算術擴展。如果ä¸é€²è¡Œå­å­—符串擴展,bash         測試一茖S有定義或高讀
        åƒæ•¸ï¼›å¿½ç•¥å†’è™Ÿçš„çµæžœæ˜¯åªæ¸¬è©¦æœªå®šç¾©çš„åƒæ•¸ã€‚
 
        ${parameter:-word}
               Use   Default   Values(使用é è¨­)。如果   parameter    未定義或-
               高禳A將替æ›ç‚º word 的擴展。å¦å‰‡ï¼Œå°‡æ›¿æ›ç‚º parameter 的C
        ${parameter:=word}
               Assign  Default  Values(賦é è¨­)。如果 parameter 未定義或高禳A
               word      的擴展將賦予      parameter.       parameter       的-
               N被替æ›ã€‚ä½ç½®åƒæ•¸å’Œç‰¹æ®Šåƒæ•¸ä¸èƒ½ç”¨é€™ç¨®æ–¹å¼è³¦ïŸ«C
        ${parameter:?word}
               Display   Error   if   Null   or   Unset(顯示錯誤,如果未定義或-
               高)。如果  parameter  未定義或高禳Aword   (或一æ¢ä¿¡æ¯ï¼Œå¦‚æžœ
               word            ä¸å­˜åœ¨)            的擴展將寫入到標準錯誤;shell
               å¦‚æžœä¸æ˜¯äº¤äº’的,則將退出。å¦å‰‡ï¼Œ parameter 的N被替æ›ã€‚
        ${parameter:+word}
               Use       Alternate       Value(使用å¯é¸)。如果       parameter
               未定義或éžç©ºï¼Œä¸æœƒé€²è¡Œæ›¿æ›ï¼›å¦å‰‡å°‡æ›¿æ›ç‚º word 擴展後的C
        ${parameter:offset}
        ${parameter:offset:length}
               Substring   Expansion(å­å­—符串擴展)。   擴展為parameter   的最多
               length     茼r符,從      offset      指定的字符開始。如果忽略了
               length,擴展為      parameter     çš„å­å­—符串,     從     offset
               指定的字符串開始。length  å’Œ  offset   是算術表é”å¼   (åƒè¦‹ä¸‹æ‚¸
               ARITHMETIC EVALUATION        D段è½)。 length 必須是一茪j於等於 0
               的數C如果  offset  求痕Gå°æ–¼  0,  N當作從  parameter  çš„-
               漸膚擎滶_çš„åç§»é‡ã€‚如果    parameter   是   @ï¼Œçµæžœæ˜¯   length
               茼鼽måƒæ•¸ï¼Œå¾ž offset 開始。 如果 parameter 是一èšï›‚æ°W,以 @  或
               * ç´¢å¼•ï¼Œçµæžœæ˜¯æ•¸çµ„çš„ length 茼å”,從 ${parameter[offset]} 開始。
               å­å­—符串的下標是從 0 開始的,除éžä½¿ç”¨ä½ç½®åƒæ•¸æ™‚,下標從 1 開始。
 
        ${!prefix*}
               擴展為å稱以   prefix   開始的變é‡åï¼Œä»¥ç‰¹æ®Šè®Šé‡   IFS   的第一-
               茼r符分隔。
 
        ${#parameter}
               替æ›ç‚º  parameter  的漯曮  (字符數目)。如果  parameter  是  *
               或者是    @,    替æ›çš„Oä½ç½®åƒæ•¸çš„èšïš±C如果   parameter   是一-
               èšï›‚æ°W,下標是 * 或者是 @, 替æ›çš„O數組中元素的èšïš±C
 
        ${parameter#word}
        ${parameter##word}
               word 被擴展為一èšç‹¾ï¹›Aå°±åƒè·¯å¾‘擴展中一樣。如果這èšç‹¾ï¹žït param-
               eter     的滌_å§‹ï¼Œé‚£éº¼æ“´å±•çš„çµæžœæ˜¯å°‡    parameter    擴展後的-
               丑Aæœ€çŸ­çš„åŒ¹é…  (``#''  的情æ³)  æˆ–è€…æœ€é•·çš„åŒ¹é…  (``##''的情æ³)
               åˆªé™¤çš„çµæžœã€‚如果      parameter      是      @     或者是     *,
               則模å¼åˆªé™¤æ“ä½œå°‡ä¾æ¬¡æ–½ç”¨æ–¼æ¯-
               茼鼽måƒæ•¸ï¼Œæœ€å¾Œæ“´å±•ç‚ºçµæžœçš„列表。如果       parameter      是一-
               èšï›‚桲僆q,下標是 @ 或者是 *, 模å¼åˆªé™¤å°‡ä¾æ¬¡æ–½ç”¨æ–¼æ•¸çµ„中的æ¯èŒ¼-
               ï¼Œæœ€å¾Œæ“´å±•ç‚ºçµæžœçš„列表。
 
        ${parameter%word}
        ${parameter%%word}
               word 被擴展為一èšç‹¾ï¹›Aå°±åƒè·¯å¾‘擴展中一樣。如果這èšç‹¾ï¹žït param-
               eter  擴展後的漣應﹛Aé‚£éº¼æ“´å±•çš„çµæžœæ˜¯å°‡  parameter   擴展後的-
               丑Aæœ€çŸ­çš„åŒ¹é…  (``%''  的情æ³)  æˆ–è€…æœ€é•·çš„åŒ¹é…  (``%%''的情æ³)
               åˆªé™¤çš„çµæžœã€‚如果     parameter     是      @      或者是      *,
               則模å¼åˆªé™¤æ“ä½œå°‡ä¾æ¬¡æ–½ç”¨æ–¼æ¯-
               茼鼽måƒæ•¸ï¼Œæœ€å¾Œæ“´å±•ç‚ºçµæžœçš„列表。如果      parameter       是一-
               èšï›‚桲僆q,下標是 @ 或者是 *, 模å¼åˆªé™¤å°‡ä¾æ¬¡æ–½ç”¨æ–¼æ•¸çµ„中的æ¯èŒ¼-
               ï¼Œæœ€å¾Œæ“´å±•ç‚ºçµæžœçš„列表。
 
        ${parameter/pattern/string}
        ${parameter//pattern/string}
               patterm           被擴展為一èšç‹¾ï¹›Aå°±åƒè·¯å¾‘擴展中一樣。parameter
               è¢«æ“´å±•ï¼Œå…¶ïŸ®ä»‡æ€æ›­æ¼±ït    pattern    的內容被替æ›ç‚º    string。
               在第一種形å¼ä¸­ï¼Œåªæœ‰ç¬¬ä¸€èŒªït被替æ›ã€‚第二種形å¼ä½¿å¾—      pattern
               中所有匹é…都被替æ›ç‚º string。 如果 pattern 以 # 開始,它必須匹é…
               parameter 擴展後  犖部。如果  pattern  以  %  開始,它必須匹é…
               parameter      擴展後漣應﹛C如果     string     是空Apattern
               的匹é…都將被刪除, pattern 之後的 / 將被忽略。如果 parameter  是
               @          或者是          *,          å‰‡æ›¿æ›æ“ä½œå°‡ä¾æ¬¡æ–½ç”¨æ–¼æ¯-
               茼鼽måƒæ•¸ï¼Œæœ€å¾Œæ“´å±•ç‚ºçµæžœçš„列表。如果      parameter       是一-
               èšï›‚桲僆q,下標是 @ 或者是 *, 模å¼åˆªé™¤å°‡ä¾æ¬¡æ–½ç”¨æ–¼æ•¸çµ„中的æ¯èŒ¼-
               ï¼Œæœ€å¾Œæ“´å±•ç‚ºçµæžœçš„列表。
 
    Command Substitution
        å‘½ä»¤æ›¿æ›    (Command    substitution)    å…許以命令的輸出替æ›å‘½ä»¤å。有
        兩種形å¼ï¼š
 
               $(command)
        還有
               `command`
 
        Bash                      進行擴展的步驟是執行                     com-
        mand,以它的標準輸出替æ›å®ƒï¼Œä¸¦ä¸”將所有後續的
        æ–°è¡Œç¬¦åˆªé™¤ã€‚å…§åµŒçš„æ–°è¡Œç¬¦ä¸æœƒåˆªé™¤ï¼Œä½†æ˜¯å®ƒæ€ši能會在詞的拆分中被刪除。
        å‘½ä»¤æ›¿æ› $(cat file) å¯ä»¥ç”¨ç­‰åƒ¹ä½†æ˜¯æ›´å¿«çš„æ–¹æ³• $(< file) 代替。
 
        當使用舊å¼çš„å引號 ("``")  替æ›å½¢å¼æ™‚ï¼Œåæ–œæ§“åªæœ‰å…¶å­—æ§Nç¾©ï¼Œé™¤éž  後惇O
        $,   `,   或者是  \.   第一茷e惆Sæœ‰åæ–œæ§“çš„åå¼•è™Ÿå°‡çµæŸå‘½ä»¤æ›¿æ›ã€‚當使用
        $(command) 形弿™‚,括號中所有字符組æˆäº†æ•´èŒ¤R令;沒有被特殊處ç†çš„字符。
 
        命令替æ›å¯ä»¥åµŒå¥—。n在使用åå¼•è™Ÿå½¢å¼æ™‚嵌套,å¯ä»¥ç”¨å斜槓來轉義內層的
        å引號。
 
        如果替æ›ç™¼ç”Ÿåœ¨é›™å¼•è™Ÿä¹‹ä¸­ï¼Œçµæžœå°‡ä¸é€²è¡Œè©žçš„æ‹†åˆ†å’Œè·¯å¾‘擴展。
 
    Arithmetic Expansion
        算術擴展å…許算術表é”å¼çš„æ±‚Mçµæžœçš„æ›¿æ›ã€‚ç®—è¡“æ“´å±•çš„æ ¼å¼æ˜¯ï¼š
 
               $((expression))
 
        表é”å¼                                                       expression
        被視為如åŒåœ¨é›™å¼•è™Ÿä¹‹ä¸­ä¸€æ¨£ï¼Œä½†æ˜¯æ‹¬è™Ÿä¸­çš„é›™å¼•è™Ÿä¸æœƒè¢«ç‰¹æ®Šè™•ç†ã€‚
        表é”å¼ä¸­æ‰€æœ‰è©žéƒ½ç¶“éŽäº†åƒæ•¸æ“´å±•,字符串擴展,命令替æ›å’Œå¼•用的刪除。
        算術替æ›å¯ä»¥åµŒå¥—。
 
        求ç…ç±U                 D          (ARITHMETIC           EVALUATION)
        章節中列出的è¦å‰‡é€²è¡Œã€‚如果表é”å¼       expression      éžæ³•,      bash
        輸出錯誤æç¤ºæ¶ˆæ¯ï¼Œä¸æœƒé€²è¡Œæ›¿æ›ã€‚
 
    Process Substitution
        Process   substitution    (進程替æ›)    åªæœ‰åœ¨æ”¯æŒå‘½åç®¡é“    (FIFOs),
        或者支æŒä½¿ç”¨  /dev/fd  æ–¹å¼ç‚ºæ‰“開的檔案命å的系統中æ‰å¯ç”¨ã€‚  å®ƒçš„å½¢å¼æ˜¯
        <(list) 或者是 >(list)。 進程 list  é‹è¡Œæ™‚的輸入或輸出被連接到一  FIFO
        或者                 /dev/fd                中的檔案。檔案的å稱作為一-
        èŒæŠï›ƒQ傳éžåˆ°ç•¶å‰å‘½ä»¤ï¼Œä½œç‚ºæ“´å±•çš„çµæžœã€‚        如果使用         >(list)
        å½¢å¼ï¼Œå‘檔案寫入相當於為      list      æä¾›è¼¸å…¥ã€‚如果使用      <(list)
        å½¢å¼ï¼Œå¯ä»¥è®€ä½œç‚ºåƒæ•¸å‚³éž 的檔案來ç²å¾— list 的輸出。
 
        如果å¯èƒ½çš„è©±ï¼Œé€²ç¨‹æ›¿æ›æ˜¯èˆ‡åƒæ•¸å’Œè®Šé‡æ“´å±•,命令替æ›å’Œç®—è¡“æ“´å±•åŒæ™‚發生的。
 
    Word Splitting
        shell    檢測ä¸åœ¨é›™å¼•è™Ÿå¼•ç”¨ä¸­ç™¼ç”Ÿçš„åƒæ•¸æ“´å±•,命令替æ›å’Œç®—è¡“æ“´å±•çš„çµæžœï¼Œ
        進行 word splitting(詞的拆分)。
 
        shell                  å°‡                   IFS                   çš„æ¯-
        茼rç¬¦éƒ½ä½œç‚ºå®šç•Œç¬¦ï¼Œæ ¹æ“šé€™äº›å­—ç¬¦ä¾†å°‡å…¶ä»–æ“´å±•çš„çµæžœåˆ†æˆè©žã€‚如果       IFS
        沒有定義,或者它的Oé è¨­çš„     <space><tab><newline>,     那麼     IFS
        字符的任何åºåˆ—都將作為分界之用。如果        IFS        的Oé è¨­ä¹‹å¤–çš„-
        A那麼詞開頭和çµå°¾çš„空白字符 space  å’Œ  tab  都將被忽略,åªn空白字符在
        IFS  çš„ïŸ®å  (å³ï¼Œ  IFS  包å«ç©ºç™½å­—符)。  任何在  IFS ä¹‹ä¸­ä½†æ˜¯ä¸æ˜¯ IFS
        空白的字符,以åŠä»»ä½•相鄰的    IFS    空白字符,將字段分隔開來。     IFS
        空白字符的åºåˆ—也被作為分界符。如果 IFS 的Oç©ºï¼Œä¸æœƒç™¼ç”Ÿè©žçš„æ‹†åˆ†ã€‚
 
        顯å¼çµ¦å‡ºçš„ç©ºïŸºæŠ   (""   或  '')  將被ä¿ç•™ã€‚  éš±å«çš„空æŠïš±A來自於空-
        滌æŠï›’X展,如果沒有引用則將被刪除。                           如果空-
        滌æŠïš¶bé›™å¼•è™Ÿå¼•ç”¨ä¸­æ“´å±•ï¼Œçµæžœæ˜¯ç©ºïŸ´æ»ŒæŠïš±A將被ä¿ç•™ã€‚
 
        注æ„å¦‚æžœæ²’æœ‰ç™¼ç”Ÿæ“´å±•ï¼Œä¸æœƒé€²è¡Œè©žçš„æ‹†åˆ†ã€‚
 
    Pathname Expansion
        詞的拆分之後,除éžè¨­ç½®éŽ -f é¸é …, bash æœç´¢æ¯èŒ§ï¼Œå°‹æ‰¾å­—符 *, ?, å’Œ [.
        如果找到了其中之一,那麼這茧被當作一 pattern(模å¼),  被替æ›ç‚ºåŒ¹é…這-
        èšç‹¾ã€žç‘°çаW以字æ¯é †åºæŽ’列的列表。如果沒有找到匹é…的檔å,   並且  shell
        ç¦ç”¨äº†    nullglob     é¸é …,這茧將ä¸ç™¼ç”Ÿè®ŠåŒ–。如果設置了     nullglob
        é¸é …並且沒有找到匹é…,這茧將被刪除。如果啟用了              nocaseglob
        é¸é …ï¼ŒåŒ¹é…æ™‚å°‡ä¸è€ƒæ…®å­—æ¯çš„大å°å¯«ã€‚當模å¼ç”¨ä½œè·¯å¾‘åæ“´å±•時,字符    ``.''
        如果在一茼W稱的開始或者緊隨一-
        è“袟b之後,那麼它必須被顯å¼åœ°åŒ¹é…,除éžè¨­ç½®äº†       dotglob       shell
        é¸é …。當匹é…一虒çº|åæ™‚,斜槓符必須被顯å¼åœ°åŒ¹é…。其他情æ³ä¸‹ï¼Œå­—符 ``.''
        䏿œƒè¢«ç‰¹æ®Šå°å¾…。åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN  COMMANDS)  中å°
        shopt  的介紹,其中有 shell é¸é … nocaseglob, nullglob, å’Œ dotglob çš„æ-
        z。
 
        ç’°å¢ƒè®Šé‡ GLOBIGNORE å¯ä»¥ç”¨ä¾†åˆ¶åŒ¹é… pattern 的檔å集åˆã€‚如果設置了  GLO-
        BIGNOR  A        æ¯èŒªït的檔åå¦‚æžœåŒ¹é…       GLOBIGNORE       中任何一-
        èšç‹¾ã€žçˆ¾äºƒN從匹é…çš„åˆ—è¡¨ä¸­åˆªé™¤ã€‚æª”å       ``.''        å’Œ        ``..''
        總是被忽略,å³ä½¿è¨­ç½®äº†  GLOBIGNOR  C 但是,設置 GLOBIGNORE 和啟用 shell
        é¸é … dotglob 效果是相åŒçš„,因此所有其他以 ``.''   開頭的檔å將被匹é…。-
        n得到鴩茠漲甈  (忽略所有以  ``.''   開頭的檔å),å¯ä»¥å°‡ ``.*''  添加為
        GLOBIGNORE    的模å¼ä¹‹ä¸€ã€‚é¸é …    dotglob    被ç¦ç”¨ï¼Œå¦‚æžœ    GLOBIGNORE
        沒有定義時。
 
        Pattern Matching
 
        任何模å¼ä¸­å‡ºç¾çš„字符,除了下探yz的特殊模å¼å­—符外,都匹é…它本芋C
        模å¼ä¸­ä¸èƒ½å‡ºç¾ NUL 字符。如果n匹é…字惜W的特殊模å¼å­—符,它必須被引用。
 
        特殊模å¼å­—符有下zæ„義:
 
        *      匹é…任何字符串包å«ç©ºä¸²ã€‚
        ?      匹é…任何單茼r符。
        [...]  åŒ¹é…æ‰€åŒ…å«çš„任何字符之一。用一茬s字符                      (`-')
               分隔的一å°å­—ç¬¦æ„æ€æ˜¯ä¸€     range    expression    (Såœè¡¨é”å¼)ï¼›
               任何排在它怳孜〞漲r符,包å«å®ƒæ€´A都被匹é…。
               排åºä½¿ç”¨ç•¶å‰èªžè¨€ç’°å¢ƒçš„字符順åºå’Œå­—符集。如果    [    之後的第一-
               茼r符是一  !   或是一  ^   那麼任何ä¸åŒ…å«åœ¨å…§çš„字符將被匹é…。-
               Såœè¡¨é”å¼ä¸­å­—ç¬¦çš„é †åºæ˜¯ç”±ç•¶å‰èªžè¨€ç’°å¢ƒ  å’Œç’°å¢ƒè®Šé‡ LC_COLLATE çš„
               (如果設置了的話)  決定的。一   -   åªæœ‰ä½œç‚ºé›†åˆä¸­ç¬¬ä¸€èŒ¤å¸ æ€®å¶€@-
               茼r符時æ‰èƒ½è¢«åŒ¹é…。一 ] åªæœ‰æ˜¯é›†åˆä¸­ç¬¬ä¸€èŒ¼r符時æ‰èƒ½è¢«åŒ¹é…。
 
               在  [  å’Œ  ]  中,character  classes  (字符類)  å¯ä»¥ç”¨ [:class:]
               é€™æ¨£çš„èªžæ³•ä¾†æŒ‡å®šï¼Œé€™è£        class         是在         POSIX.2
               標準中定義的下列類å之一:
               alnum  alpha  ascii  blank  cntrl  digit graph lower print punct
               space upper word xdigit
               一茼r符類匹é…任何屬於這一類的字符。word
               字符類匹é…å­—æ¯ï¼Œæ•¸å­—和字符 _。
 
               在  [  å’Œ  ] 中,å¯ä»¥ç”¨ [=c=] 這樣的語法來指定 equivalence class
               (等價類)。它匹é…與字符 c æœ‰ç›¸åŒæ­¸ä¸¦æ¬Š (collation weight,由當å‰
               語言環境定義) 的字符。
 
               在  [  å’Œ  ] 中,語法 [.symbol.] åŒ¹é…æ­¸ä¸¦ç¬¦è™Ÿ (collating symbol)
               symbol。
 
        如果使用內建命令     shopt     啟用了     shell     é¸é …      extglob,
        將識別å¦å¤–幾種模å¼åŒ¹é…æ“作符。下悸煽yz中,pattern-list    是一   或多-
        èšç‹¾â€˜H | 分隔的列表。復åˆçš„æ¨¡å¼å¯ä»¥ä½¿ç”¨ä¸€èŒ¤å³–h茪U列的 å­æ¨¡å¼æ§‹é€ å‡ºä¾†ï¼š
 
               ?(pattern-list)
                      åŒ¹é…æ‰€çµ¦æ¨¡å¼é›¶æ¬¡æˆ–一次出ç¾
               *(pattern-list)
                      åŒ¹é…æ‰€çµ¦æ¨¡å¼é›¶æ¬¡æˆ–多次出ç¾
               +(pattern-list)
                      åŒ¹é…æ‰€çµ¦æ¨¡å¼ä¸€æ¬¡æˆ–多次出ç¾
               @(pattern-list)
                      æº–ç¢ºåŒ¹é…æ‰€çµ¦æ¨¡å¼ä¹‹ä¸€
               !(pattern-list)
                      ä»»ä½•é™¤äº†åŒ¹é…æ‰€çµ¦æ¨¡å¼ä¹‹ä¸€çš„字串
 
    Quote Removal
        ç¶“éŽå‰æ‚¸ç”„X展之後,所有未引用的字符  \,  ', 以åŠä¸¦éžä¸Šzæ“´å±•çµæžœçš„字符 "
        都被刪除。
 
       V(REDIRECTION)
        在命令執行å‰ï¼Œå®ƒçš„輸入和輸出å¯èƒ½è¢« redirected (    w  V)  A 使用一種  shell
        å¯ä»¥è§£é‡‹çš„特殊記法。咿wå‘也å¯ä»¥ç”¨æ–¼ç‚ºç•¶å‰         shell        執行環境
        打開和關閉檔案。下列咿w呿“作符å¯ä»¥å‰ç½®æˆ–者放在     simple      command
        (          R  O)        之中的任何ä½ç½®ï¼Œæˆ–者放在        command       之後。-
        å’¿w呿˜¯ä»¥å‡ºç¾çš„é †åºé€²è¡Œè™•ç†çš„,從左到å³ã€‚
 
        下列æz中,如果檔案æzç¬¦è¢«å¿½ç•¥ï¼Œä¸¦ä¸”ç¬¬ä¸€èŒ·å®šå‘æ“作符是     <,     那麼-
        å’¿w呿Œ‡çš„æ˜¯æ¨™æº–輸入  (檔案æz符是  0)。如果咿w呿“作符的第一茼r符是  >,
        那麼咿w呿Œ‡çš„æ˜¯æ¨™æº–輸出 (檔案æz符是 1)。
 
        下列æz中,咿w呿“作符之後的詞如果沒有特殊說明,都nç¶“éŽ  brace   expan-
        sion,  tilde  expansion,  parameter  expansion,  command  substitution,
        arithmetic expansion, quote  removal,  pathname  expansion,  還有  word
        splitting。如果擴展為多於一茧, bash 將報錯。
 
        注æ„å’¿wå‘的順åºéžå¸¸å—。例如,命令
 
               ls > dirlist 2>&1
 
        將標準輸出和標準錯誤咿wå‘到檔案 dirlist, 而命令
 
               ls 2>&1 > dirlist
 
        åªæœƒå°‡æ¨™æº–輸出咿wå‘到檔案  dirlist, 因為在標準輸出被咿wå‘到檔案 dirlist
        中之å‰ï¼Œæ¨™æº–錯誤被複製為標準輸出。
 
        一些檔å在咿wå‘中被 bash 特殊處ç†ï¼Œå¦‚下表所示:
 
               /dev/fd/fd
                      如果 fd 是一茼X法的整數,檔案æz符 fd 將被複製。
               /dev/stdin
                      檔案æz符 0 被複製。
               /dev/stdout
                      檔案æz符 1 被複製。
               /dev/stderr
                      檔案æz符 2 被複製。
               /dev/tcp/host/port
                      如果 host 是一茼Xæ³•çš„ä¸»æ©Ÿåæˆ– Internet 地å€ï¼Œä¸¦ä¸” port 是
                      一蚞蒱æ•f號或æœå‹™å,bash    試圖建立與相應的    socket
                      (套接字) 的 TCP 連接。
               /dev/udp/host/port
                      如果 host 是一茼Xæ³•çš„ä¸»æ©Ÿåæˆ– Internet 地å€ï¼Œä¸¦ä¸” port 是
                      一蚞蒱æ•f號或æœå‹™å,bash    試圖建立與相應的    socket
                      (套接字) 的 UDP 連接。
 
        打開或創建檔案錯誤將導På’¿wå‘出錯。
 
    Redirecting Input
        å’¿wå‘輸入使得以    word    æ“´å±•çµæžœç‚ºåçš„æª”æ¡ˆè¢«æ‰“é–‹ä¸¦é€šéŽæª”案æz符    n
        讀å–,如果沒有指定 n 那麼就作為標準輸入 (檔案æz符為 0) 讀å–。
 
        å’¿wå‘è¼¸å…¥çš„ä¸€èˆ¬å½¢å¼æ˜¯ï¼š
 
               [n]<word
 
    Redirecting Output
        å’¿wå‘輸出使得以    word    æ“´å±•çµæžœç‚ºåçš„æª”æ¡ˆè¢«æ‰“é–‹ä¸¦é€šéŽæª”案æz符    n
        寫入,如果沒有指定 n 那麼就作為標準輸出 (檔案æz符為 1) 寫入。
 
        å’¿wå‘çš„ä¸€èˆ¬å½¢å¼æ˜¯ï¼š
 
               [n]>word
 
        如果咿w呿“作符是   >,    並且啟用了內建命令    set    çš„    noclobber
        é¸é …,那麼如果      word      擴展後得到的檔å存在並且是一è‹é›²q的檔案,
        å’¿wå‘將失敗。如果咿w呿“作符是      >|,       或者咿w呿“作符是       >
        並且沒有啟用內建命令    set    çš„    noclobber    é¸é …,那麼å³ä½¿   word
        得出的檔å存在,也會嘗試進行咿wå‘。
 
    Appending Redirected Output                                   )
        這種方å¼çš„輸出咿wå‘使得以 word  æ“´å±•çµæžœç‚ºåçš„æª”æ¡ˆè¢«æ‰“é–‹ä¸¦é€šéŽæª”案æz符
        n      從尾部添加。如果沒有指定     n     就使用標準輸出     (檔案æz符
        1)。如果檔案ä¸å­˜åœ¨ï¼Œå®ƒå°‡è¢«å‰µå»ºã€‚
 
        å’¿wå‘çš„ä¸€èˆ¬å½¢å¼æ˜¯ï¼š
 
               [n]>>word
 
    Redirecting Standard Output and Standard Error
        Bash å…è¨±ä½¿ç”¨é€™ç¨®çµæ§‹å°‡æ¨™æº–輸出和標準錯誤 (檔案æz符 1 å’Œ 2)  å’¿wå‘到以
        word æ“´å±•çµæžœç‚ºå的檔案中。
 
        有兩種咿w呿¨™æº–輸出/標準錯誤的形å¼ï¼š
 
               &>word
        還有
               >&word
 
        兩種形å¼ä¸­ï¼ŒæŽ¨è–¦ä½¿ç”¨ç¬¬ä¸€ç¨®ã€‚它與
 
               >word 2>&1
        在語義上等價。
 
    Here Documents
        這種咿wå‘使得  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 中的所有行都nç¶“éŽ
        parameter  expansion,  command  substitution, 和 arithmetic expansion。
        在後一種情æ³ä¸‹ï¼Œå­—符åºåˆ— \<newline> 被忽略;必須用 \ 來引用字符  \,  $,
        和 `.
 
        如果咿w呿“作符是 <<-, 那麼所有å‰å°Žçš„ tab å­—ç¬¦éƒ½è¢«å¾žè¼¸å…¥è¡Œå’ŒåŒ…å« delim-
        iter     的行中刪除。這樣使得     shell     稿本中的      here-document
        å¯ä»¥è¢«æ›´å¥½åœ°ç¸®é€²ã€‚
 
    Here Strings
        here-document çš„è®Šç¨®ï¼Œå½¢å¼æ˜¯
 
               <<<word
 
        word 被擴展,æä¾›çµ¦å‘½ä»¤ä½œç‚ºæ¨™æº–輸入。
 
    Duplicating File Descriptors                 y  )
        å’¿w呿“作符
 
               [n]<&word
 
        用於複製檔案æz符。如果   word   擴展為一茤峖hèšïš¶r,  n  代表的檔案æ-
        z符將æˆç‚ºé‚£èš—仵袨yz符的複製。如果       word        中的數字並未指定一-
        茬Q用於讀å–的檔案æz符,將產生一茷定å‘錯誤。如果 word 擴展為 -, 檔案æ-
        z符 n 將被關閉。如果沒有指定 n  A 將使用標準輸入 (檔案æz符 0)。
 
        類似的,æ“作符
 
               [n]>&word
 
        用於複製輸出檔案æz符。如果沒有指定   n  A   將使用標準輸出   (檔案æz符
        1)。如果    word   中的數字並未指定一茬Q用於輸出的檔案æz符,將產生一-
        å’¿wå‘錯誤。  特殊情æ³ä¸‹ï¼Œå¦‚果忽略了  n,並且  word   ä¸¦éžæ“´å±•為一茤峖h-
        èšïš¶r, 標準輸出和標準錯誤將被咿wå‘ï¼Œå’Œå‰æŽ¢yz的一樣。
 
    Moving File Descriptors
        å’¿w呿“作符
 
 
               [n]<&digit-
        將檔案æz符    digit    移動為檔案æz符    n,   或標準輸入   (檔案æz符
        0),如果沒有指定 n 的話。 digit 複製為 n 之後就被關閉了。
 
        類似的,咿w呿“作符
 
 
               [n]>&digit-
        將檔案æz符   digit   移動為檔案æz符    n,    或標準輸出    (檔案æz符
        1),如果沒有指定 n 的話。
 
    Opening File Descriptors for Reading and Writing
        å’¿w呿“作符
 
               [n]<>word
 
        使得以       word       æ“´å±•çµæžœç‚ºåçš„æª”æ¡ˆè¢«æ‰“é–‹ï¼Œé€šéŽæª”案æz符       n
        進行讀寫。如果沒有指定              n               那麼就使用檔案æz符
        0。如果檔案ä¸å­˜åœ¨ï¼Œå®ƒå°‡è¢«å‰µå»ºã€‚
 
     W(ALIASES)
        Aliases     (åˆ¥åæ©Ÿåˆ¶)    å…許將一茧來替æ›ç‚ºä¸€èŒ¼r符串,如果它是    一-
        蚋眾璈R令的第一茧的話。shell   記錄著一èOå列表,å¯ä»¥ä½¿ç”¨    內建命令
        alias  å’Œ  unalias ä¾†å®šç¾©å’Œå–æ¶ˆ (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN
        COMMANDS)    章節)。æ¯èŒ¤Rä»¤çš„ç¬¬ä¸€èŒ§ï¼Œå¦‚æžœæ²’æœ‰å¼•ç”¨ï¼Œéƒ½å°‡è¢«æª¢æŸ¥æ˜¯å¦æ˜¯ä¸€-
        èOå。                                                     如果是,這-
        茧將被它所指代的文本替æ›ã€‚別å和替æ›çš„æ–‡æœ¬å¯ä»¥åŒ…å«ä»»ä½•有效  çš„   shell
        輸入,包å«ä¸Šæƒ˜C出的  metacharacters (      r    ) ï¼Œç‰¹æ®Šæƒ…æ³æ˜¯åˆ¥å中ä¸èƒ½åŒ…å«
        =ã€‚æ›¿æ›æ–‡æœ¬çš„第一茧也被檢查是å¦
        是別å,但是如果它與被替æ›çš„別å相åŒï¼Œå°±ä¸æœƒå†æ›¿æ›ç¬¬äºŒæ¬¡ã€‚這æ„味著å¯ä»¥ç”¨
        ls 作為 ls -F 的別å,  bash  䏿œƒéžæ­¸åœ°å±•é–‹æ›¿æ›æ–‡æœ¬ã€‚如果別å的最後一-
        茼r符是                 blank,                那麼命令中別å之後的下一-
        茧也將被檢查是å¦èƒ½é€²è¡Œåˆ¥å展開。
 
        別åå¯ä»¥ä½¿ç”¨ alias 命令來創建或列舉出來,使用 unalias 命令來刪除。
 
        åœ¨æ›¿æ›æ–‡æœ¬ä¸­æ²’æœ‰åƒæ•¸æ©Ÿåˆ¶ã€‚如果需nåƒæ•¸ï¼Œæ‡‰ç•¶ä½¿ç”¨ shell  函數  (åƒè¦‹ä¸‹æ‚¸
        FUNCTIONS       ) 段è½)。
 
        如果  shell  䏿˜¯äº¤äº’的,別å將䏿œƒå±•開,除éžä½¿ç”¨å…§å»ºå‘½ä»¤  shopt 設置了
        expand_aliases é¸é …。
 
        關於別å的定義和使用中的è¦å‰‡æ¯”較混亂。                             Bash
        在執行一行中的任何命令之å‰ï¼Œç¸½æ˜¯è®€å…¥è‡³å°‘完整一行的輸入。
        別ååœ¨å‘½ä»¤è¢«è®€å–æ™‚å±•é–‹ï¼Œè€Œä¸æ˜¯åœ¨åŸ·è¡Œçš„æ™‚唌C因此,別å定義如果   å’Œå¦ä¸€-
        茤R令在åŒä¸€è¡Œï¼Œé‚£éº¼ä¸æœƒèµ·ä½œç”¨ï¼Œé™¤éžè®€å…¥äº†ä¸‹ä¸€è¡Œã€‚
        別å定義之後,åŒä¸€è¡Œä¸­çš„命令䏿œƒå—新的別å影響。這種行為
        åœ¨å‡½æ•¸åŸ·è¡Œæ™‚å­˜åœ¨çˆ­è­°ï¼Œå› ç‚ºåˆ¥åæ›¿æ›æ˜¯åœ¨å‡½æ•¸å®šç¾©è¢«è®€å–時發生的,
        è€Œä¸æ˜¯å‡½æ•¸è¢«åŸ·è¡Œçš„æ™‚唌A因為函數定義本足O一è‹_åˆå‘½ä»¤ã€‚çµæžœï¼Œ
        在函數中定義的別ååªæœ‰ç•¶é€™èŒ–è»ï›€é¶¡ç‘½é¦±~會生效。為了ä¿éšªèµ·è¦‹ï¼Œ
        應當總是將別å定義放在單ç¨çš„一行,ä¸åœ¨å¾©åˆå‘½ä»¤ä¸­ä½¿ç”¨ alia  C
 
        ä¸ç®¡ä»€éº¼æƒ…æ³ä¸‹ï¼Œåˆ¥å都被 shell 函數超越 (be superseded)。
 
       (FUNCTIONS)
        一       shell       函數,以上       SHELL       GRAMMAR       中æ-
        z的方法定義,ä¿å­˜è‘—一系列的命令,等待ç¨å¾ŒåŸ·è¡Œã€‚  ç•¶ shell 函數å作為一-
        蚋眾璈R令å使用時,這茖è»ïš¶Wé—œè¯çš„命令的åºåˆ—  è¢«åŸ·è¡Œã€‚å‡½æ•¸åœ¨ç•¶å‰  shell
        çš„ä¸Šä¸‹æ–‡ç’°å¢ƒä¸­åŸ·è¡Œï¼›ä¸æœƒå‰µå»ºæ–°çš„進程來      解釋它     (這與     shell
        稿本的執行形æˆäº†å°æ¯”)。當執行函數時,函數
        çš„åƒæ•¸æˆç‚ºåŸ·è¡ŒéŽç¨‹ä¸­çš„ä½ç½®åƒæ•¸   (positional   parameters)ã€‚ç‰¹æ®Šåƒæ•¸  #
        è¢«æ›´æ–°ä»¥åæ˜ é€™èš¥é›‚ïš±Cä½ç½®åƒæ•¸   0    䏿œƒæ”¹è®Šã€‚函數執行時,    FUNCNAME
        變é‡è¢«è¨­ç½®ç‚ºå‡½æ•¸çš„å稱。函數和它的調用者在 shell 執行環境的所有 å…¶ä»–æ–¹-
        掖ㄛOä¸€æ¨£çš„ï¼Œç‰¹æ®Šæƒ…æ³æ˜¯ DEBUG 陷阱  (åƒè¦‹ä¸‹æŽªé´¾æ¾ˆå ¥è»  trap  çš„æz,在
        shell                   O(SHELL       BUILTIN       COMMANDS)       章節中)
        䏿œƒè¢«ç¹¼æ‰¿ï¼Œé™¤éžå‡½æ•¸è¨­ç½®äº† trace 屬性 (åƒè¦‹ä¸‹æŽªé´¾æ¾ˆå ¥è» declare  çš„æ-
        z)。
 
        函數中的局部變é‡å¯ä»¥ä½¿ç”¨å…§å»ºå‘½ä»¤ local ä¾†è²æ˜Žã€‚通常情æ³ä¸‹ï¼Œè®Šé‡å’Œå®ƒæ€-
        b函數和它的調用者之間是共享的。
 
        如果函數中執行了內建命令                                       retur  A
        é‚£éº¼å‡½æ•¸çµæŸï¼ŒåŸ·è¡Œå¾žå‡½æ•¸èª¿ç”¨ä¹‹å¾Œçš„下一茤R令開始。
        å‡½æ•¸çµæŸå¾Œï¼Œä½ç½®åƒæ•¸çš„HåŠç‰¹æ®Šåƒæ•¸ # 都將姜m為它怞b函數執行å‰çš„C
 
        函數å和定義å¯ä»¥ä½¿ç”¨å…§å»ºå‘½ä»¤    declare    或    typeset    加上     -f
        åƒæ•¸ä¾†åˆ—出。如果在     declare     或     typeset     命令中使用     -F
        é¸é …å°‡åªåˆ—出函數å。函數å¯ä»¥ä½¿ç”¨å…§å»ºå‘½ä»¤      export      加上       -f
        åƒæ•¸å°Žå‡ºï¼Œä½¿å¾—å­ shell 中它抭Q自動定義。
 
        函數å¯ä»¥æ˜¯éžæ­¸çš„ã€‚å°æ–¼éžæ­¸èª¿ç”¨çš„æ¬¡æ•¸æ²’有硬性制。
        在一定的環境下,shell   å…許進行算術表é”å¼çš„æ±‚  (åƒè¦‹å…§å»ºå‘½ä»¤  let  å’Œ
        Arithmetic           Expansion           (算術表é”å¼))。            求-
        æ´å³Tå®šå¯¬åº¦çš„æ•´æ•¸ï¼Œä¸æª¢æŸ¥æ˜¯å¦æº¢å‡ºï¼Œä½†æ˜¯è¢«é›¶é™¤æœƒè¢«æ•ç²ï¼Œæ¨™è¨˜ç‚ºéŒ¯èª¤ã€‚
        æ“作數åŠå…¶å„ªå…ˆç´šå’Œèšåˆç¨‹åº¦èˆ‡   C   語言中相åŒã€‚下列æ“作數的列表按照相åŒ
        優先級的æ“ä½œæ•¸å…¶ç´šåˆ¥ä¾†åˆ†çµ„ã€‚åˆ—å‡ºçš„ç´šåˆ¥é †åºæ˜¯å„ªå…ˆç´šéžæ¸›çš„。
 
        id++ id--
               變é‡è‡ªå¢ž/自減 (在後)
        ++id --id
               變é‡è‡ªå¢ž/自減 (在å‰)
        - +    (單目的) å–t/å–æ­£
        ! ~    é‚輯和ä½å–å
        **     æ’«
        * / %  æ…¼A除,å–餘
        + -    加,減
        << >>  å·¦/å³ä½ç§»
        <= >= < >
               比較
        == !=  相等/ä¸ç­‰
        &      ä½èˆ‡ (AND)
        ^      ä½ç•°æˆ– (exclusive OR)
        |      使ˆ– (OR)
        &&     é‚輯與 (AND)
        ||     é‚輯或 (OR)
        expr?expr:expr
               æ¢ä»¶æ±‚
        = *= /= %= += -= <<= >>= &= ^= |=
               賦
        expr1 , expr2
               逗號表é”å¼
 
        shell               變é‡å¯ä»¥ä½œç‚ºæ“作數;在表é”弿±‚妨eæœƒé€²è¡Œåƒæ•¸æ“´å±•。
        在表é”å¼ä¸­ï¼Œå¯ä»¥ç”¨å稱引用     shell     變é‡ï¼Œä¸å¿…ä½¿ç”¨åƒæ•¸æ“´å±•的語法。
        變é‡è¢«å¼•用時,其Q作為算術表é”å¼ä¾†æ±‚C                          shell
        變é‡ç”¨æ–¼è¡¨é”å¼ä¸­æ™‚,ä¸å¿…啟用整數屬性。
 
        以 0 為å‰å°Žçš„常é‡è¢«ç•¶ä½œå…«é€²åˆ¶æ•¸ï¼Œä»¥ 0x 或  0X  作為å‰å°Žè¡¨æ˜Žæ˜¯å六進制。
        其他情æ³ä¸‹ï¼Œæ•¸å­—çš„å½¢å¼æ˜¯  [base#]nï¼Œé€™è£ base 是一 2 到 64 çš„å進制數-
        A作為數字的基數,n 是在這èŒç¾†ïš´å…®ïš¶r的C 如果忽略了  base#,將以  10
        為基數。大於 10 çš„æ•¸å­—ä¾æ¬¡ä»¥å°å¯«å­—æ¯ï¼Œ 大寫字æ¯ï¼Œ@ å’Œ _ 表示。如果 base
        å°æ–¼æˆ–等於        36,在表示        10        與        35         之間
        的數字時å°å¯«å­—æ¯å’Œå¤§å¯«å­—æ¯å¯ä»¥äº’æ›ã€‚
 
        æ“作符根據優先級順åºé€²è¡Œæ±‚C圓括號中的å­è¡¨é”å¼è¢«æœ€å…ˆæ±‚Aå¯èƒ½æœƒ
        超越上悸瑰u先級è¦å‰‡ã€‚
        æ¢ä»¶è¡¨é”å¼ç”¨æ–¼    [[    復åˆå‘½ä»¤ä»¥åŠå…§å»ºå‘½ä»¤    test    å’Œ    [    中,
        用來測試檔案屬性,進行字符串和算術比較。表é”å¼ä½¿ç”¨ä¸‹-
        悸熙璆堜峇G進制æ“作構造。    å¦‚æžœæŸæ“作的任何     file     åƒæ•¸çš„形弿˜¯
        /dev/fd/n,那麼將檢查    檔案æz符    nã€‚å¦‚æžœæŸæ“作的    file    åƒæ•¸æ˜¯
        /dev/stdin,  /dev/stdout  或者  /dev/stderr  之一,將分別檢查檔案æz符
        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 存在且是一茤Råç®¡é“ (FIFO) 則為真。
        -r file
               如果 file 存在且å¯è®€å‰‡ç‚ºçœŸã€‚
        -s file
               如果 file 存在且大å°å¤§æ–¼é›¶å‰‡ç‚ºçœŸã€‚
        -t fd  如果檔案æz符 fd æ˜¯æ‰“é–‹çš„ä¸”å°æ‡‰ä¸€èŒžè¢Ÿæ¦h為真。
        -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 存在且上次讀å–後被蚹儮L則為真。
        file1 -nt file2
               如果  file1  比  file2 n新 (根據蚹鴾暾),或者 如果 file1 存在而
               file2 ä¸å­˜åœ¨ï¼Œå‰‡ç‚ºçœŸã€‚
        file1 -ot file2
               如果  file1  比  file2  更舊,或者  如果  file1  ä¸å­˜åœ¨è€Œ  file2
               存在,則為真。
        file1 -ef file2
               如果 file1 å’Œ file2 指的是相åŒçš„設備和 inode 號則為真。
        -o optname
               如果啟用了  shell  é¸é … optname 則為真。åƒè¦‹ä¸‹æŽªé´¾æ¾ˆå œR令 set çš„
               -o é¸é …çš„æz中的é¸é …列表。
        -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 å¯ä»¥æ˜¯æ­£/t整數。
        當執行一蚋眾璈R令時,shell 進行下列擴展,賦Må’¿wå‘,從左到å³ã€‚
 
        1.     解釋器標記為與變é‡è³¦            (在命令å之å‰çš„)            å’Œ-
               å’¿w呿œ‰é—œçš„詞被ä¿å­˜ç­‰å¾…隨後處ç†ã€‚
 
        2.     並éžè®Šé‡è³¦ïŸ³å³†å®šå‘的詞被擴展。如果擴展後ä»ç„¶æœ‰è©žä¿ç•™ä¸‹ä¾†ï¼Œç¬¬ä¸€-
               茧被 作為命令åï¼Œå…¶é¤˜è©žæ˜¯åƒæ•¸ã€‚
 
        3.     å’¿w呿Œ‰ç…§ä¸Š REDIRECTION 中講到的è¦å‰‡é€²è¡Œã€‚
 
        4.     æ¯èš¥åƒ†q賦     =     之後的文本在賦予變é‡ä¹‹å‰nç¶“éŽæ³¢æµªç·šæ“´å±•,
               åƒæ•¸æ“´å±•,命令替æ›ï¼Œç®—術擴展和引用刪除。
 
        如果沒有得到命令å,變é‡è³¦ï †véŸ¿ç•¶å‰     shell    環境。å¦å‰‡ï¼Œè®Šé‡è¢«åŠ å…¥
        被執行的命令的環境中,ä¸å½±éŸ¿ç•¶å‰    shell     環境。如果任何賦囮@試圖
        為åªè®€è®Šé‡è³¦ïŸ«A將導P出錯,命令以éžé›¶ç‹€æ…‹ïŸºh出。
 
        如果沒有得到命令å,咿wå‘仿œƒé€²è¡Œï¼Œä½†æ˜¯ä¸å½±éŸ¿ç•¶å‰      shell     環境。
        å’¿wå‘出錯將使命令以éžé›¶ç‹€æ…‹ïŸºh出。
 
        如果擴展後有命令åä¿ç•™ä¸‹ä¾†ï¼Œé‚£éº¼åŸ·è¡ŒéŽç¨‹å¦‚下所示。å¦å‰‡ï¼Œå‘½ä»¤é€€å‡ºã€‚
        如果在任何擴展中包å«å‘½ä»¤æ›¿æ›ï¼Œé‚£éº¼æ•´èŒ¤R令的退出狀態是最後一茤R令
        替æ›çš„退出狀態。如果沒有進行命令替æ›ï¼Œå‘½ä»¤ä»¥ç‹€æ…‹é›¶é€€å‡ºã€‚
        å‘½ä»¤è¢«æ‹†åˆ†ç‚ºè©žä¹‹å¾Œï¼Œå¦‚æžœçµæžœæ˜¯ä¸€èš‹çœ¾ç’ˆR令和å¯é¸çš„åƒæ•¸åˆ—表,將執行   下-
        悸瑣犑@。
 
        如果命令å中沒有斜槓,shell    試圖定ä½å‘½ä»¤ä½ç½®ã€‚如果存在åŒåçš„   shell
        函數,函數將被執行,åƒä¸Š    FUNCTIONS    中講到的一樣。如果åç¨±ä¸æ˜¯ä¸€-
        茖è»ïš±Ashell 從 內建命令中æœç´¢å®ƒã€‚如果找到 å°æ‡‰å‘½ä»¤ï¼Œå®ƒå°‡è¢«åŸ·è¡Œã€‚
 
        如果åç¨±æ—¢ä¸æ˜¯   shell  å‡½æ•¸ä¹Ÿä¸æ˜¯ä¸€èŒªæ¾ˆå œRä»¤ï¼Œä¸¦ä¸”æ²’æœ‰åŒ…å«æ–œæ§“,  bash
        æœç´¢   PATH   çš„æ¯èŒ¼å”ï¼ŒæŸ¥æ‰¾å«æœ‰æ­¤æª”å   (å¯åŸ·è¡Œæª”案)   的目錄。   Bash
        使用散列表來儲存å¯åŸ·è¡Œæª”案的全路徑   (åƒè¦‹ä¸‹æ‚¸   shell             O(SHELL
        BUILTIN COMMANDS) 中的 has  C  åªæœ‰åœ¨æ•£åˆ—表中沒有找到此命令,æ‰å°  PATH
        進行完整的æœç´¢ã€‚如果æœç´¢ä¸æˆåŠŸï¼Œshell 輸出錯誤消æ¯ï¼Œè¿”回退出狀態 127。
 
        如果æœç´¢æˆåŠŸï¼Œæˆ–è€…å‘½ä»¤ä¸­åŒ…å«ä¸€èŒ¤å³–hè“袟b,shell      在單ç¨çš„執行環境中
        執行這茧{å¼ã€‚åƒæ•¸                                                     0
        被設置為所給åç¨±ï¼›å‘½ä»¤çš„å…¶ä»–åƒæ•¸è¢«è¨­ç½®ç‚ºæ‰€çµ¦çš„åƒæ•¸ï¼Œ 如果有的話。
 
        å¦‚æžœåŸ·è¡Œå¤±æ•—ï¼Œå› ç‚ºæª”æ¡ˆä¸æ˜¯å¯åŸ·è¡Œæ ¼å¼ï¼Œä¸¦ä¸”æ­¤æª”æ¡ˆä¸æ˜¯ç›®éŒ„,就å‡å®šå®ƒæ˜¯
        一 shell script (稿本),一茈]å« shell  命令的檔案。此時將孵化  (spawn)
        出一茪l  shell  ä¾†åŸ·è¡Œå®ƒã€‚å­ shell å¥såˆå§‹åŒ–自芋Aæ•ˆæžœå°±å¥½åƒæ˜¯ 執行了一-
        虓sçš„  shell  來處ç†ç¨¿æœ¬ä¸€æ¨£ï¼Œä½†æ˜¯çˆ¶  shell  ä¿å­˜çš„命令ä½ç½®ä»ç„¶è¢«  ä¿ç•™
        (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN COMMANDS) 中的 hash  C
 
        å¦‚æžœç¨‹å¼æ˜¯ä»¥        #!        開頭的檔案,那麼第一行的其餘部分指定了這-
        茧{å¼çš„解釋器。                                                   shell
        åŸ·è¡ŒæŒ‡å®šçš„è§£é‡‹å™¨ï¼Œå¦‚æžœä½œæ¥­ç³»çµ±ä¸æœƒè‡ªè¡Œè™•ç†é€™ç¨®å¯åŸ·è¡Œæª”案格å¼çš„話。
        è§£é‡‹å™¨çš„åƒæ•¸ç”±ä¸‹æƒœT部分組æˆï¼šç¨‹å¼ç¬¬ä¸€è¡Œä¸­è§£é‡‹å™¨å稱之後的å¯é¸çš„一-
        èŒæŠïš±A 程å¼çš„åç¨±ï¼Œå‘½ä»¤è¡Œåƒæ•¸ï¼Œå¦‚果有的話。
        shell 有 execution environment (執行環境) 的概念,由下列內容組æˆï¼š
 
        o      shell  啟動時繼承的打開的檔案,例如在內建命令  exec  中使用咿wå‘
               蚹麊熊痕G
 
        o      ç•¶å‰å·¥ä½œç›®éŒ„,使用  cd,pushd  或者  popd   設置,或是由   shell
               在啟動時繼承得到
 
        o      æª”æ¡ˆå‰µå»ºæ¨¡å¼æŽ©ç¢¼ï¼Œä½¿ç”¨ umask 設置或是從 shell 的父進程中繼承得到
 
        o      ç•¶å‰é™·é˜±ï¼Œç”¨ trap 設置
 
        o      shell                 åƒæ•¸ï¼Œä½¿ç”¨è®Šé‡è³¦ïŸ³å³ˆ                  set
               設置,或者是從父進程的環境中繼承得到
 
        o      shell 函數,在執行中定義或者是從父進程的環境中繼承得到
 
        o      設為å…許的é¸é …,在執行時設置                 (n麼是é è¨­å…許的,-
               n麼是命令行給出的) 或者是 用 set 設置
 
        o      用 shopt 設為å…許的é¸é …
 
        o      用 alias 定義的 shell 別å
 
        o      å„種進程號,包å«I景作業的進程號,$$ 的Aä»¥åŠ $PPID çš„
 
        ç•¶ä¸¦éž   shell   函數或內置命令的簡單命令執行時,它在一茈悀Uz內容組æˆçš„
        å–®ç¨çš„執行環境中啟動。除éžå¦å¤–說明,ㄛO從 shell 中繼承的。
 
        o      shell 打開的檔案,加上å°å‘½ä»¤ä½¿ç”¨å’¿wå‘蚹鴭M添加的檔案
 
        o      ç•¶å‰å·¥ä½œç›®éŒ„
 
        o      æª”æ¡ˆå‰µå»ºæ¨¡å¼æŽ©ç¢¼
 
        o      標記為導出   (export)   çš„   shell   變é‡ï¼Œä»¥åŠå‚³éžåˆ°ç’°å¢ƒä¸­ç‚ºé€™-
               茤R令導出的變é‡
 
        o      shell   æ•æ‰çš„陷阱被姜m為從    shell    的父進程中繼承的Ashell
               忽略的陷阱 也被忽略
 
        在單ç¨çš„環境中啟動的命令ä¸èƒ½å½±éŸ¿ shell 的執行環境。
 
        命令替æ›å’Œç•°æ­¥å‘½ä»¤éƒ½åœ¨å­  shell  ç’°å¢ƒä¸­åŸ·è¡Œã€‚å­  shell  環境是鴞 shell
        環境的賦A但 shell æ•æ‰çš„陷阱被姜m為  shell  啟動時從父進程中繼承的C
        作為管é“一部分來執行的內建命令也在一茪l  shell  環境中執行。å°å­  shell
        環境所作蚹鴾ㄞé‰v響到鴞 shell 的執行環境。
 
        如果命令後惇O   &    並且沒有啟用作業控制,命令的é è¨­æ¨™æº–輸入將是空檔案
        /dev/null。å¦å‰‡ï¼Œè¢«åŸ·è¡Œçš„命令從調用它的     shell    中繼承被咿wå‘蚹麊
        檔案æz符。
 
       (ENVIRONMENT)
        當一茧{å¼åŸ·è¡Œæ™‚,它被賦予一茼r符串數組,æˆç‚ºç’°å¢ƒ environment。  它是一
        å稱-ï ƒ (name-value) çš„åˆ—è¡¨ï¼Œå½¢å¼æ˜¯ name=value.
 
        shell  æä¾›äº†å¤šç¨®æ“作環境的方法。啟動時,shell 掃æè‡ªèµ¤ç‘°è—¿ç‰·A為æ¯èé‹®
        çš„åå­—å‰µå»ºä¸€èŒæŠïš±A自動地將它標記為                              export
        (å‘å­é€²ç¨‹å°Žå‡ºçš„)。被執行的命令繼承了這蚗藿牷C   export  å’Œ  declare  -x
        命令å…è¨±åƒæ•¸å’Œå‡½æ•¸è¢«åŠ å…¥åˆ°ç’°å¢ƒä¸­æˆ–å¾žç’°å¢ƒä¸­åˆªé™¤ã€‚å¦‚æžœç’°å¢ƒä¸­åƒæ•¸çš„   被-
        蚹鵅A新足å¯è—¿çŒæ¼±@部分,替æ›äº†èˆŠïŸ«C所有被執行的命令繼承的環境    包å«
        shell  çš„åˆå§‹ç’°å¢ƒ  (å¯èƒ½ïŸ½Q蚹儮L),減去被  unset   命令刪除的,加上通éŽ
        export 和 declare -x 命令添加的部分。
 
        å¯ä»¥åœ¨ä»»ä½•    simple    command   æˆ–å‡½æ•¸çš„ç’°å¢ƒä¸­è¨­å®šæš«æ™‚æœ‰æ•ˆçš„åƒæ•¸ï¼Œåª-
        nå°‡åƒæ•¸è³¦ïŸ³éŸ˜b命令剿ޢNå¯ä»¥äº†ï¼Œ   åƒè¦‹ä¸Š   PARAMETERS   çš„æz。這些賦-
        ï …yå¥åªåœ¨é€™èŒ¤R令的環境中有效。
 
        如果設置了內建命令     set     çš„     -k    é¸é …,            æ³£   變é‡è³¦-
        ㄠN放到命令的環境中,ä¸åƒ…是在命令å剿‚¸æ¼•漕ïŽC
 
        ç•¶             bash              執行一茈~éƒ¨å‘½ä»¤æ™‚ï¼Œè®Šé‡              _
        被設置為命令的檔案全å,然後被傳éžåˆ°å‘½ä»¤çš„環境之中。
        從  shell  的角度看,一茤R令退出狀態是  0 æ„味著æˆåŠŸé€€å‡ºã€‚ 退出狀態是 0
        表明æˆåŠŸã€‚éžé›¶ç‹€æ…‹ïŸ´ç£¼å¤±æ•—。當命令收到  fatal  signal  N  退出時,bash
        使用 128+N 作為它的退出狀態。
 
        如果沒有找到命令,為執行它而創建的å­é€²ç¨‹è¿”回    127。如果找到了命令但是
        檔案ä¸å¯åŸ·è¡Œï¼Œè¿”回狀態是 126。
 
        如果命令由於擴展或咿wå‘錯誤而失敗,退出狀態大於零。
 
        shell  內建命令如果æˆåŠŸè¿”å›ž   0(true),執行時出錯則返回éžé›¶   (false)。
        所有內建命令返回 2 ä¾†æŒ‡ç¤ºä¸æ­£ç¢ºçš„用法。
 
        Bash              自赤藀^最後執行的命令的退出狀態,除éžç™¼ç”Ÿäº†èªžæ³•錯誤,
        這時它返回éžé›¶ïŸ«Cåƒè¦‹ä¸‹æ‚¸æ¼±æ¾ˆå œR令 exit。
 
     (SIGNALS)
        如果  bash  是交互的,沒有設定任何陷阱,它忽略  SIGTERM  (這樣  kill  0
        䏿œƒæ®ºæŽ‰äº¤äº’çš„   shell)。   SIGINT  被æ•ç²ä¸¦è™•ç†  (從而使內建命令  wait
        å¯ä»¥ä¸­æ–·)。在所有情æ³ä¸‹ï¼Œ bash  忽略  SIGQUIT。  如果正在使用作業控制,
        bash 忽略 SIGTTIN, SIGTTOU, 和 SIGTSTP.
 
        bash   開始的並行作業的信號處ç†å¥æŸ„都設置為  shell  從父進程中繼承  çš„-
        Cå¦‚æžœä¸æ˜¯æ­£åœ¨ä½¿ç”¨ä½œæ¥­æŽ§åˆ¶ï¼Œç•°æ­¥å‘½ä»¤é‚„忽略  SIGINT   å’Œ   SIGQUIT    C
        作為命令替æ›çµæžœé‹è¡Œçš„命令忽略éµç›¤ç”¢ç”Ÿçš„作業控制信號  SIGTTIN, SIGTTOU,
        和 SIGTSTP.
 
        如果收到信號   SIGHU  A    shell    é è¨­é€€å‡ºã€‚在退出å‰ï¼Œäº¤äº’çš„    shell
        呿‰€æœ‰ä½œæ¥­ï¼Œé‹è¡Œçš„æˆ–åœæ­¢çš„ï¼Œç™¼é€  SIGHUP  信號。shell  å‘åœæ­¢çš„作業發出
        SIGCONT      信號來ä¿è¨¼å®ƒæŠª|收到       SIGHUP.        n阻止       shell
        å‘特定的作業發é€ä¿¡è™Ÿï¼Œæ‡‰ç•¶ä½¿ç”¨å…§å»ºå‘½ä»¤    disown   將作業從作業表中刪除
        (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN COMMANDS) 章節) 或者使用 disown
        -h ä¾†æ¨™è¨˜ç‚ºä¸æŽ¥å— SIGHU  C
 
        如果使用  shopt 設置了 shell é¸é … huponexi  A 在交互的登入 shell 退出時
        bash 呿‰€æœ‰ä½œæ¥­ç™¼å‡º SIGHUP 信號。
 
        ç•¶  bash  ç­‰å¾…å‘½ä»¤åŸ·è¡ŒçµæŸæ™‚,如果收到已設置了陷阱的信號,陷阱   (trap)
        將䏿œƒåŸ·è¡Œï¼Œç›´åˆ°å‘½ä»¤çµæŸã€‚      ç•¶      bash      通éŽå…§å»ºå‘½ä»¤     wait
        等待異步命令時,如果收到已設置    了陷阱的信號,將使得內建命令     wait
        ç«‹å³ä»¥å¤§æ–¼ 128 的狀態藀^。 接著,陷阱將立å³è¢«åŸ·è¡Œã€‚
        Job     control     (作業控制)    指的是å¯ä»¥é¸æ“‡åœæ­¢    (suspend,掛起)
        進程執行,並且              å¯ä»¥åœ¨ä¹‹å¾Œç¹¼çºŒ               (resume,æ¢å¾©)
        執行的能力。使用者一般在交互的人機界               中使用這種功能。界-
        惇O由系統的終端驅動和 bash å…±åŒæä¾›çš„ã€‚
 
        shell å°‡æ¯èš¨ç‘D分é…給一   @  ~(job)  C  它ä¿å­˜ä¸€è™“礅eé‹è¡Œçš„作業表,å¯ä»¥ç”¨
        jobs  命令來列出。當  bash  啟動一茞夾B的作業時 (background  AI            )  A
        它輸出這樣的一行:
 
               [1] 25647
 
        表明這è@業的作業號是   1,與作業相關連的管é“中最後一èˆi程的   進程ID是
        15647。管é“中所有進程都是åŒä¸€è@業的æˆã€‚     Bash    使用      @  ~(job)
        概念作為作業控制的基礎。
 
        為簡化作業控制的使用者界悸犒窶{,作業系統t責管ç†ã€Œç•¶å‰çµ‚端的進程組ã€
        (current  terminal  process group ID) 的概念。這èˆiç¨‹çµ„çš„æˆ (進程組 ID
        是當å‰çµ‚端進程組  ID   的進程)   å¯ä»¥æ”¶åˆ°éµç›¤ç”¢ç”Ÿçš„信號,例如   SIGINT.
        這些進程被稱為 foreground(å‰å°çš„)。 Background (I        ) 進程是那些進程組
        ID                   與終端ä¸åŒçš„é€²ç¨‹ï¼›é€™äº›é€²ç¨‹ä¸æœƒæ”¶åˆ°éµç›¤ç”¢ç”Ÿçš„信號。
        åªæœ‰å‰å°é€²ç¨‹å¯ä»¥å¾žçµ‚端讀或å‘終端寫。-
        I景進程試圖讀/寫終端時,將收到終端驅動程å¼ç™¼é€çš„   SIGTTIN    (SIGTTOU)
        信號。這茷Hè™Ÿå¦‚æžœæ²’æœ‰åŠ ä»¥æ•æ‰ï¼Œå°‡æŽ›èµ·é€™èˆi程。
 
        如果         bash         é‹è¡Œå…¶ä¸Šçš„作業系統支æŒä½œæ¥­æŽ§åˆ¶ï¼Œ         bash
        會包å«ä½¿ç”¨å®ƒçš„設施。在一èˆi程正在é‹è¡Œçš„æ™‚埡鉹J   suspend         _    字符
        (通常是   ^Z,   Control-Z)  將使這èˆi程暫åœï¼Œå°‡æŽ§åˆ¶æ¬Šé‚„給  bash.   輸入
        delayed  suspend  ,                _  字符  (通常是  ^Y,  Control-Y)   將使這-
        èˆi程在試圖從終端讀å–輸入時暫åœï¼Œå°‡æŽ§åˆ¶æ¬Šé‚„給                     bash.
        使用者接下來å¯ä»¥æŽ§åˆ¶æ­¤ä½œæ¥­çš„狀態,使用  bg  命令使它在I景繼續é‹è¡Œï¼Œ  fg
        命令使它在å‰å°ç¹¼çºŒé‹è¡Œï¼Œæˆ–             kill            命令將它殺死。^Z
        會立å³èµ·ä½œç”¨ï¼Œä¸¦ä¸”還有使等待中的                              (pending)
        輸出和輸入被忽略的附加副作用。
 
        有很多方法來指代   shell   中的作業。字符  %  å¯ä»¥å¼•入作業å。編號為  n
        的作業å¯ä»¥ç”¨                                                         %n
        的形å¼ä¾†æŒ‡ä»£ã€‚作業也å¯ä»¥ç”¨å•Ÿå‹•它的å稱的å‰ç¶´ï¼Œæˆ–者命令行中的å­å­—符串來指代。例如,
        %ce 指代一èšïŸºæ‚¸ ce 作業。如果å‰ç¶´åŒ¹é…多於一è@業, bash 報錯。å¦ä¸€æ–¹-
        情A使用         %?ce,         å¯ä»¥æŒ‡ä»£ä»»ä½•命令行中包å«å­—符串         ce
        的作業。如果å­å­—符串匹é…多於一è@業, bash 報錯。符號  %%  å’Œ  %+  指代
        shell   æ„義上的   current   job,當å‰ä½œæ¥­ï¼Œ  也就是å‰å°è¢«æš«åœçš„æœ€å¾Œä¸€-
        è@業,或者是在I景啟動的作業。  previous  job    A  e  @  @  ~  å¯ä»¥ä½¿ç”¨  %-
        來指代。在有關作業的輸出信æ¯ä¸­             (例如,命令             jobs
        的輸出),當å‰ä½œæ¥­ç¸½æ˜¯è¢«æ¨™è¨˜ç‚º +, å‰ä¸€ä½œæ¥­æ¨™è¨˜ç‚º -.
 
        簡單地給出作業å,å¯ä»¥ç”¨ä¾†æŠŠå®ƒæ”¾åˆ°å‰å°ï¼š    %1     是     ``fg     %1''
        çš„åŒç¾©è©žï¼Œå°‡ä½œæ¥­ 1 從I景放到å‰å°ã€‚類似的, ``%1 &'' 在I景æ¢å¾©ä½œæ¥­ 1,與
        ``bg %1'' 等價。
 
        ç•¶æŸè@業改變狀態時,shell ç«‹å³å¯ä»¥å¾—知。通常,  bash  等待直到n輸出一-
        è‹ã„”亄躓氶Aæ‰æœƒå ±å‘Šä½œæ¥­çš„ç‹€æ…‹è®ŠåŒ–ï¼Œå¾žè€Œä¸æœƒæ‰“斷其他輸出。
        如果啟用了內建命令 set çš„ -b é¸é …, bash 將立å³å ±å‘Šé€™äº›è®ŠåŒ–ã€‚å° SIGCHLD
        信號的陷阱將在æ¯èŒªl進程退出時執行。
 
        å¦‚æžœåœ¨ä½œæ¥­æš«åœæ™‚試圖退出   bas  A   shell  列å°ä¸€æ¢è­¦å‘Šæ¶ˆæ¯ã€‚命令  jobs
        å¯èƒ½è¢«ç”¨ä¾†æª¢æŸ¥ä½œæ¥­çš„ç‹€æ…‹ã€‚å¦‚æžœå†æ¬¡è©¦åœ–退出,中間沒有其他命令,shell
        䏿œƒåˆ—å° å…¶ä»–è­¦å‘Šï¼Œæš«åœçš„作業將終止。
 
           (PROMPTING)
        在交互執行時,   bash  在準備好讀入一æ¢å‘½ä»¤æ™‚顯示主æç¤ºç¬¦  PS  A  在需-
        n更多的輸入來完æˆä¸€æ¢å‘½ä»¤æ™‚顯示               PS  C                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 的基本部分 (最後一è“袟b後悸熙﹞)
               \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 的字符
               \\     一茪炱袟b
               \[     一-
                      茪ㄔi列å°å­—符åºåˆ—的開始,å¯ä»¥ç”¨æ–¼åœ¨æç¤ºç¬¦ä¸­åµŒå…¥çµ‚端控制åºåˆ—
               \]     一茪ㄔi列å°å­—符åºåˆ—çš„çµæŸ
 
        命令編號和歷å²ç·¨è™Ÿé€šå¸¸æ˜¯ä¸åŒçš„:歷å²ç·¨è™Ÿæ˜¯å‘½ä»¤åœ¨æ­·å²åˆ—表中的ä½ç½®ï¼Œå¯èƒ½
        包å«å¾žæ­·å²æª”案中æ¢å¾©çš„命令        (åƒè¦‹ä¸‹æ‚¸        HISTORY          v
        章節)ï¼Œè€Œå‘½ä»¤ç·¨è™Ÿæ˜¯ç•¶å‰    shell   會話中執行的命令åºåˆ—中,命令的ä½ç½®ã€‚
        字符串被解碼之後,它將進行擴展,nç¶“éŽ parameter expansion, command sub-
        stitution,  arithmetic expansion å’Œ quote removal, 最後nç¶“éŽ shell é¸é …
        promptvars  è™•ç†  (åƒè¦‹ä¸‹æ‚¸  shell             O(SHELL  BUILTIN  COMMANDS)
        章節中,å°å‘½ä»¤ shopt çš„æz)。
 
 readlin  w(READLINE)
        這是在交互    shell   中處ç†è®€å–輸入的庫,除éžåœ¨   shell   啟動時給出了
        --noediting          é¸é …。é è¨­æƒ…æ³ä¸‹ï¼Œè¡Œç·¨è¼¯å‘½ä»¤é¡žä¼¼æ–¼           emacs
        中的那些。也å¯ä»¥ä½¿ç”¨      vi      樣å¼çš„行編輯界情C      n在      shell
        é‹è¡Œä¹‹å¾Œé—œé–‰è¡Œç·¨è¼¯ï¼Œä½¿ç”¨å…§ç½®å‘½ä»¤ set çš„ +o emacs 或 +o vi é¸é … (åƒè¦‹ä¸‹-
        悸 shell            O(SHELL BUILTIN COMMANDS) 章節)。
 
    Readline Notation
        在這茪p節中,將使用   emacs  樣å¼çš„記法來表z按éµã€‚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), 一般作為契_çš„p數。有些時-
        唌A它是å—åƒæ•¸çš„æ¨™è¨˜ã€‚給å‘剿–¹é€²è¡Œçš„命令     (例如,kill-line)     傳éž-
        tæ•¸åƒæ•¸ï¼Œå°‡ä½¿å¾—命令å‘åæ–¹å‘進行。                                   下-
        悸漫R令如果接å—åƒæ•¸æ™‚的行為與此ä¸åŒï¼Œå°‡å¦è¡Œèªªæ˜Žã€‚
 
        當命令被æz為剪切  (killing)   文本時,被刪除的文本被ä¿å­˜ï¼Œç­‰å¾…將來使用
        (粘貼,yanking)。被剪切的文本ä¿å­˜åœ¨    kill   ring   中。連續的剪切使得
        æ–‡æœ¬è¢«ä¾æ¬¡åŠ å…¥åˆ°ä¸€èŒ¬ç’Šèˆ…ä¸‘Aå¯ä»¥ä¸€æ¬¡è¢«ç²˜è²¼ã€‚ä¸å‰ªåˆ‡æ–‡æœ¬çš„命令將 kill ring
        中的文本分離。
 
    Readline Initialization         
        readline    å¯ä»¥é€šéŽå°‡å‘½ä»¤æ”¾å…¥åˆå§‹åŒ–檔案    (inputrc   檔案)   來定制。
        檔åå¾žè®Šé‡ INPUTRC  的分簳。如果沒有設置這蚥僆q,é è¨­æ˜¯  ~/.inputrc.
        當使用                                                         readline
        庫的程å¼å•Ÿå‹•時,將讀å–åˆå§‹åŒ–檔案,按éµé—œè¯å’Œè®Šé‡å°‡è¢«è¨­ç½®ã€‚     readline
        åˆå§‹åŒ–檔案中åªå…許有很少的基本構造。          空行被忽略。以          #
        開始的行是注釋。以            $            開始的行指示了有æ¢ä»¶çš„æ§‹é€ ã€‚
        其他行表示按éµé—œè¯å’Œè®Šé‡è¨­ç½®ã€‚
 
        é è¨­çš„æŒ‰éµé—œè¯å¯ä»¥ä½¿ç”¨ inputrc 檔案改變。其他使用這è‡w的程å¼å¯ä»¥æ·»åŠ å®ƒ-
        怞è‘v的命令和關è¯ã€‚
 
        例如,將
 
               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             å…許將按éµèˆ‡ä¸€èŒ¼r符串關è¯ï¼Œç•¶æŒ‰ä¸‹é€™-
        蚆銈氶Aå°‡æ’入這茼r符串 (一è說Amacro)。
 
    Readline Key Bindings
        inputrc                         檔案中的控制按éµé—œè¯çš„語法éžå¸¸ç°¡å–®ã€‚需-
        nçš„å…§å®¹æ˜¯å‘½ä»¤åæˆ–å®ï¼Œä»¥åŠå®ƒæ‡‰ç•¶é—œè¯åˆ°çš„æŒ‰éµåºåˆ—。
        å稱å¯ä»¥ä»¥å…©ç¨®æ–¹å¼æŒ‡å®šï¼šä¸€èŒ·é¶¬éŠ‚ç†”é¡«é«¡W稱,å¯èƒ½å¸¶æœ‰ Meta-  或  Control-
        å‰ç¶´ï¼Œæˆ–者是一茷鶬銣ï“C。
 
        當使用   keyname:function-name  或  macro  形弿™‚,  keyname  是按éµä»¥-
        ^文拼寫的å稱。例如:
 
               Control-u: universal-argument
               Meta-Rubout: backward-kill-word
               Control-o: "> output"
 
        在上z例å­ä¸­ï¼Œ C-u 被關è¯åˆ°å‡½æ•¸ universal-argument,  M-DEL  被關è¯åˆ°å‡½æ•¸
        backward-kill-word,        而        C-o       被關è¯ç‚ºé‹è¡Œå³é‚Šçµ¦å‡ºçš„å®
        (æ„æ€æ˜¯ï¼Œå°‡å‘行中æ’å…¥ ``> output'' )。
 
        在第二種形å¼ä¸­ï¼Œ"keyseq":function-name 或  macro,  keyseq  ä¸åŒæ–¼ä¸Šæ‚¸
        keynam  A                                                       表示整-
        茷鶬銣ï“C的字符串å¯ä»¥é€šéŽå°‡æŒ‰éµåºåˆ—放在雙引號引用中來指定。
        å¯ä»¥ä½¿ç”¨ä¸€äº›                          GNU                         Emacs
        樣å¼çš„æŒ‰éµåºåˆ—ï¼Œå¦‚ä¸‹ä¾‹æ‰€ç¤ºï¼Œä½†æ˜¯ä¸æœƒè­˜åˆ¥æŒ‰éµçš„符號å稱。
 
               "\C-u": universal-argument
               "\C-x\C-r": re-read-init-file
               "\e[11~": "Function Key 1"
 
        在上z例å­ä¸­ï¼Œ  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 字符
               \\     åæ–œæ§“
               \"     字惜W的 "
               \'     字惜W的 '
 
        除了 GNU Emacs 樣å¼çš„轉義åºåˆ—ï¼Œé‚„æœ‰ä¸€ç³»åˆ—åæ–œæ§“轉義åºåˆ—å¯ç”¨ï¼š
               \a     響鈴
               \b     回退
               \d     刪除
               \f     進紙
               \n     新行符
               \r     回車
               \t     水斥鶖
               \v     豎直跳格
               \nnn   一茪K比特字符,它的O八進制 nnn (一到三茪K進制數字)。
               \xHH   一茪K比特字符,它的Oå六進制        HH        (一到兩-
                      茪Q六進制數字)。
 
        輸入å®çš„æ–‡æœ¬æ™‚,必須使用單引號或雙引號引用來表明是å®çš„定義。
        沒有引用的文本被當作函數å。在å®çš„定義體中,上zåæ–œæ§“轉義被擴展。
        åæ–œæ§“å°‡å¼•ç”¨å®æ–‡æœ¬ä¸­æ‰€æœ‰å…¶ä»–字符,包括 " å’Œ '。
 
        Bash      å…許使用內建命令      bind      來顯示和蚹儱礅e      readline
        按éµé—œè¯ã€‚在交互使用中å¯ä»¥ç”¨å…§å»ºå‘½ä»¤  set  çš„   -o   é¸é …切æ›åˆ°ç·¨è¼¯æ¨¡å¼
        (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL BUILTIN COMMANDS) 章節)。
 
    Readline Variables
        readline       包å«é¡å¤–çš„å¯ç”¨æ–¼å®šåˆ¶å®ƒçš„行為的變é‡ã€‚å¯ä»¥åœ¨       inputrc
        檔案中設置變é‡ï¼Œä½¿ç”¨å¦‚下形å¼çš„語å¥ï¼š
 
               set variable-name value
 
        除éžå¦å¤–說明,readline 變é‡çš„ï ‹`是 On 或 Of  C 變é‡å’Œå®ƒæ€çŠ’w設O:
 
        bell-style (audible)
               控制了當 readline 需n鳴終端響鈴時的動作。如果設置為 none, read-
               line            䏿œƒé³´éˆ´ã€‚如果設置為           visible,readline
               使用å¯è¦–的響鈴,如果å¯ç”¨çš„話。   如果設置為    audible,readline
               試著鳴終端響鈴。
        comment-begin (``#'')
               這茼r符串在執行 readline 命令 insert-comment 時被æ’入。這茤R令在
               emacs 模å¼ä¸‹è¢«é—œè¯ç‚º M-  A 在 vi 模å¼ä¸‹æ˜¯   C
        completion-ignore-case (Off)
               如果設置為 On,readline 進行大å°å¯«ä¸æ•感的檔å匹é…和補全。
        completion-query-items (100)
               這蚥僆q決定著何時å‘使用者詢å•ï¼Œæ˜¯å¦æŸ¥çœ‹ç”±å‘½ä»¤   possible-comple-
               tions   產生的å¯èƒ½çš„補全數é‡ã€‚  它å¯ä»¥è¨­ç‚ºä»»ä½•大於或等於  0  çš„-
               C如果å¯èƒ½çš„補全數é‡å¤§æ–¼æˆ–等於這蚥僆q的A
               使用者將被æç¤ºæ˜¯å¦é¡˜æ„查看它怴Få¦å‰‡å°‡ç›´æŽ¥åœ¨çµ‚端上列出它怴C
        convert-meta (On)
               如果設置為   On,readline   將把設置了最高ä½çš„字符轉æ›ç‚º   ASCII
               按éµåºåˆ—,方法是 去掉第八ä½ï¼Œå‰ç¶´ä¸€èš‹é‰Šq字符  (實際上,使用  Esc
               作為轉義符 meta prefix)。
        disable-completion (Off)
               如果設置為                                          On,readline
               å°‡ç¦æ­¢è©žçš„補全。補全字符將被æ’入到行中,就好åƒå®ƒæŠ­Q 映射為 self-
               insert。
        editing-mode (emacs)
               控制 readline 的按éµé—œè¯é›†åˆèˆ‡ emacs 還是 vi 相似。 editing-mode
               å¯ä»¥è¨­ç½®ç‚º emacs 或 v  C
        enable-keypad (Off)
               如果設置為    On     ,readline     在調用時將試圖啟用輔助éµç›¤ã€‚
               一些系統需n設置這茖è“狴峇閬Véµã€‚
        expand-tilde (Off)
               如果設置為 On,readline 試圖進行詞的補全時會進行波浪線擴展。
        history-preserve-point
               如果設置為  On,歷å²ä»£ç¢¼è©¦è‘—在  previous-history 或 next-history
               å–回的æ¯èšžå²è¡Œçš„相åŒä½ç½®ä¸­åŠ é»žã€‚
        horizontal-scroll-mode (Off)
               如果設置為 On,將使得 readline 使用單行來顯示,如果它比螢幕寬度-
               n長,就在 單一的螢幕行上水朮uå‹•è¼¸å…¥è¡Œï¼Œè€Œä¸æ˜¯è‡ªå‹•回繞到新行。
        input-meta (Off)
               如果設置為             On,readline             å°‡å…許八比特輸入
               (ä¹Ÿå°±æ˜¯èªªï¼Œå®ƒä¸æœƒå°‡å®ƒè®€å…¥çš„字符中最高ä½åˆªé™¤),
               ä¸ç®¡å®ƒèƒ½æ”¯æŒä»€éº¼æ¨£çš„終端n求。å稱 meta-flag 與此變é‡åŒç¾©ã€‚
        isearch-terminators (``C-[C-J'')
               用於終止增é‡çš„æœç´¢ï¼Œä¸å†å°‡å­—符當作命令執行的字符串。     如果這-
               蚥僆q沒有賦A字符串 Esc å’Œ C-J 將終止增é‡çš„æœç´¢ã€‚
        keymap (emacs)
               è¨­ç½®ç•¶å‰    readline    éµç›¤æ˜ å°„。有效的éµç›¤æ˜ å°„å稱是    emacs,
               emacs-standard,  emacs-meta,  emacs-ctlx,  vi,  vi-command,還有
               vi-insert  C    vi    等價於     vi-command;     emacs     等價於
               emacs-standard。é è¨­ïŸ¶O       emacs;       editing-mode      çš„-
               ]會影響é è¨­çš„éµç›¤æ˜ å°„。
        mark-directories (On)
               如果設置為 Onï¼Œè£œå…¨çš„ç›®éŒ„åæœƒæ·»åР䏀è“袟b。
        mark-modified-lines (Off)
               如果設置為 On,已被蚹麊瑣å²è¡Œå°‡é¡¯ç¤ºç‚ºå‰ç¶´ä¸€èŒ¯P號 (*)。
        mark-symlinked-directories (Off)
               如果設置為 On,補全的åç¨±å¦‚æžœæ˜¯åˆ°ç›®éŒ„çš„ç¬¦è™ŸéˆæŽ¥ï¼Œå‰‡å°‡æ·»åŠ ä¸€è“袟b
               (與 mark-directories 的P樣處ç†)。
        match-hidden-files (On)
               這蚥僆q,如果設置為 On,將使得 readline 在進行檔å補全時,匹é…以
               `.'        開頭的檔案         (éš±è—æª”案),         除éžä½¿ç”¨è€…在-
               n補全的檔å中給出了å‰å°Žçš„ `.'。
        output-meta (Off)
               如果設置為                                          On,readline
               將直接顯示設置了第八ä½çš„å­—ç¬¦ï¼Œè€Œä¸æ˜¯è½‰åŒ–為一è“a             meta
               å‰ç¶´çš„轉義åºåˆ—。
        page-completions (On)
               如果設置為   On,readline   將使用內建的類似   more  的分項{å¼ï¼Œ
               ä¾†æ¯æ¬¡é¡¯ç¤ºä¸€å±å¯èƒ½çš„補全。
        print-completions-horizontally (Off)
               如果設置為  On,readline  將匹é…的補全按字æ¯è¡¨é †åºæŽ’åºï¼Œç„¶å¾Œæ°´-
               排列顯示出來, è€Œä¸æ˜¯åœ¨èž¢å¹•上豎直排列顯示。
        show-all-if-ambiguous (Off)
               這將調整補全函數的é è¨­è¡Œç‚ºã€‚如果設置為      on,      æ“æœ‰å¤šæ–¼ä¸€-
               茈i能的補全的詞將立å³åˆ—出所有匹é…ï¼Œè€Œä¸æ˜¯é³´éŸ¿éˆ´ã€‚
        visible-stats (Off)
               如果設置為            On,在列出å¯èƒ½çš„補全時,將在檔å後æ²K加一-
               茠磳傱仵袓型的字符, 檔案類型由 stat(2) 報告。
 
    Readline Conditional Constructs
        readline  實ç¾äº†ä¸€ç¨®åŠŸèƒ½ï¼Œæœ¬è³ªä¸Šèˆ‡  C  é è™•ç†å™¨é€²è¡Œæ¢ä»¶ç·¨è­¯çš„功能類似,
        å…è¨±æ ¹æ“šæ¸¬è©¦çš„çµæžœé€²è¡Œéµç›¤é—œè¯å’Œè®Šé‡è¨­ç½®ã€‚其中使用了四種解釋器指令。
 
        $if    $if     çµæ§‹å…許根據編輯模å¼ï¼Œæ­£åœ¨ä½¿ç”¨çš„終端,使用      readline
               的應用程å¼ä¾†è¨­å®šæŒ‰éµé—œè¯ã€‚
               測試的文本包括一行,直到行尾;ä¸å¿…用字符來隔離它。
 
               mode   $if çµæ§‹çš„ mode= å½¢å¼ç”¨æ–¼æ¸¬è©¦ readline 處於 emacs 還是 vi
                      模å¼ã€‚   這å¯ä»¥èˆ‡å‘½ä»¤   set  keymap  çµåˆä½¿ç”¨ï¼Œä¾‹å¦‚,設置
                      emacs-standard å’Œ emacs-ctlx éµç›¤æ˜ å°„,僅當  readline  以
                      emacs 模å¼å•Ÿå‹•。
 
               term   term=
                      å½¢å¼ç”¨æ–¼åŒ…å«èˆ‡çµ‚端相關的按éµé—œè¯ï¼Œä¹Ÿè¨±æ˜¯å°‡æŒ‰éµåºåˆ—輸出與終端的功能éµç›¸é—œè¯ã€‚
                      等號    =   å³é‚Šçš„詞被åŒçµ‚端的全åå’Œå稱中第一   -   å‰-
                      悸漱@部分相比較。  例如,å…許   sun   åŒæ™‚åŒ¹é…   sun   å’Œ
                      sun-cmd  C
 
               application
                      application çµæ§‹ç”¨æ–¼åŒ…嫿‡‰ç”¨ç¨‹å¼ç›¸é—œçš„設置。æ¯èŒ–æ´ read-
                      line        的程å¼éƒ½è¨­ç½®        application        name,
                      åˆå§‹åŒ–檔案å¯ä»¥æ¸¬è©¦å®ƒçš„C它å¯ç”¨æ–¼å°‡ä¸€-
                      茷鶬銣ï“C與å°ç‰¹å®šçš„ç¨‹å¼æœ‰ç”¨çš„功能相關è¯ã€‚
                      例如,下列命令添加了一茷鶬銣ï“C,用以引用            bash
                      中當å‰çš„詞或å‰ä¸€èŒ§
 
                      $if Bash
                      # Quote the current or previous word
                      "\C-xq": "\eb\"\ef\""
                      $endif
 
        $endif 上例中的這茤Rä»¤ï¼ŒçµæŸäº†ä¸€ $if 命令。
 
        $else  如果測試失敗,$if 指令中這茪壑銂漫R令將被執行。
 
        $include
               這茷令使用單-
               蚗犰Wä½œç‚ºåƒæ•¸ï¼Œå¾žæª”案中讀å–命令和按éµé—œè¯ã€‚例如,下列指令 將讀å–
               /etc/inputrc:
 
               $include  /etc/inputrc
 
    Searching
        readline æä¾›äº†å¾žå‘½ä»¤æ­·å²ä¸­æœç´¢åŒ…å«çµ¦å®šå­—符串的行的命令 (åƒè¦‹ä¸‹æ‚¸ HIS-
        TORY   v 章節)。有兩種æœç´¢æ¨¡å¼ï¼š incremental å’Œ non-incremental.
 
        增é‡çš„æœç´¢åœ¨ä½¿ç”¨è€…çµæŸè¼¸å…¥æœç´¢å­—符串時開始。在æœç´¢å­—符串的æ¯-
        茼rç¬¦è¢«è¼¸å…¥çš„åŒæ™‚, readline  顯示與已輸入的字符串匹é…çš„ä¸‹ä¸€èšžå²æ¢ç›®ã€‚
        增é‡çš„æœç´¢åªnæ±‚è¼¸å…¥èƒ½æ‰¾åˆ°æœŸæœ›çš„æ­·å²æ¢ç›®æ‰€éœ€çš„那麼多字符。  isearch-ter-
        minators 變é‡ä¸­çš„字符用來終止一次增é‡çš„æœç´¢ã€‚å¦‚æžœ 這蚥僆q沒有被賦AEsc
        å’Œ          Ctrl-J          å­—ç¬¦ä¸²å°‡çµæŸä¸€æ¬¡å¢žé‡çš„æœç´¢ã€‚         Ctrl-G
        將喿¶ˆä¸€æ¬¡å¢žé‡çš„æœç´¢ï¼Œæ¢å¾©åˆå§‹çš„行。當æœç´¢çµ‚æ­¢æ™‚ï¼ŒåŒ…å«æœç´¢å­—符串
        çš„æ­·å²æ¢ç›®æˆç‚ºç•¶å‰è¡Œã€‚
 
        n從歷å²åˆ—表中找到其他匹é…çš„æ¢ç›®ï¼Œé©ç•¶åœ°éµå…¥    Ctrl-S    或    Ctrl-R。
        這樣將在歷å²ä¸­å‘å‰/å‘後æœç´¢ä¸‹ä¸€èŒªït已輸入的æœç´¢å­—符串的æ¢ç›®ã€‚
        å…¶ä»–é—œè¯åˆ°æŸ    readline    命令的按éµåºåˆ—將終止æœç´¢ä¸¦åŸ·è¡Œé—œè¯çš„命令。
        例如,newline 將終止æœç´¢ï¼ŒæŽ¥å—ç•¶å‰è¡Œï¼Œå¾žè€ŒåŸ·è¡Œæ­·å²åˆ—表中的命令。
 
        readline  å¯ä»¥è¨˜ä½ä¸Šæ¬¡å¢žé‡æœç´¢çš„字符串。如果éµå…¥å…©æ¬¡   Ctrl-R,中間沒有
        輸入任何字符來定義一虓sçš„æœç´¢å­—符串,那麼將使用已記ä½çš„æœç´¢å­—ç¬¦ä¸²ã€‚
 
        éžå¢žé‡çš„æœç´¢å°‡æ•´è™“j索字符串讀入,然後æ‰é–‹å§‹æœç´¢åŒ¹é…çš„æ­·å²æ¢ç›®ã€‚
        æœç´¢å­—符串å¯ä»¥ç”±ä½¿ç”¨è€…輸入,或者是當å‰è¡Œçš„內容的一部分。
 
    Readline Command Names
        下惘C出的是命令的å稱以åŠé è¨­æƒ…æ³ä¸‹å®ƒæ–»é¶¬p的按éµåºåˆ—。
        命令åç¨±å¦‚æžœæ²’æœ‰å°æ‡‰çš„æŒ‰éµåºåˆ—,那麼é è¨­æ˜¯æ²’有關è¯çš„。在下列æz中,  點
        (point)      æŒ‡ç•¶å‰æ¸¸æ¨™ä½ç½®ï¼Œæ¨™è¨˜      (mark)      指命令      set-mark
        ä¿å­˜çš„æ¸¸æ¨™ä½ç½®ã€‚point å’Œ mark 之間的文本被稱為Såœ (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)
               å‘å¾Œç§»å‹•åˆ°ç•¶å‰æˆ–上一詞滿C
        clear-screen (C-l)
               清除螢幕,ä¿ç•™ç•¶å‰è¡Œåœ¨èž¢å¹•é ‚ç«¯ã€‚æœ‰åƒæ•¸æ™‚,刷新當å‰è¡Œï¼Œä¸æ¸…å±ã€‚
        redraw-current-line
               刷新當å‰è¡Œã€‚
 
    Commands for Manipulating the History            
        accept-line (Newline, Return)
               接å—這一行,ä¸ç®¡æ¸¸æ¨™åœ¨ä»€éº¼ä½ç½®ã€‚如果行éžç©ºï¼Œå°‡æ ¹æ“šè®Šé‡  HISTCON-
               TROL                           的狀態加入到歷å²åˆ—表中。如果行是-
               蚹儮L的歷å²è¡Œï¼Œå°‡æ¢å¾©è©²æ­·å²è¡Œåˆ°åˆå§‹ç‹€æ…‹ã€‚
        previous-history (C-p)
               從歷å²åˆ—表中å–å¾—å‰ä¸€èŒ¤R令,從列表中å‘後移動。
        next-history (C-n)
               從歷å²åˆ—表中å–得後一茤R令,從列表中å‘å‰ç§»å‹•。
        beginning-of-history (M-<)
               移動到歷å²ä¸­çš„第一行。
        end-of-history (M->)
               移動到輸入歷å²è¡Œçš„æœ«å°¾ï¼Œä¹Ÿå°±æ˜¯ç•¶å‰è¼¸å…¥çš„行的末尾。
        reverse-search-history (C-r)
               從當å‰è¡Œé–‹å§‹å‘後æœç´¢ï¼ŒæŒ‰ç…§éœ€n在歷å²ä¸­å‘「上ã€ç§»å‹•。這是一-
               èšWé‡çš„æœç´¢ã€‚
        forward-search-history (C-s)
               從當å‰è¡Œé–‹å§‹å‘剿œç´¢ï¼ŒæŒ‰ç…§éœ€n在歷å²ä¸­å‘「下ã€ç§»å‹•。這是一-
               èšWé‡çš„æœç´¢ã€‚
        non-incremental-reverse-search-history (M-p)
               從當å‰è¡Œé–‹å§‹å‘後,使用éžå¢žé‡æœç´¢ä¾†æŸ¥æ‰¾ä½¿ç”¨è€…給出的字符串。
        non-incremental-forward-search-history (M-n)
               從當å‰è¡Œé–‹å§‹å‘å‰ï¼Œä½¿ç”¨éžå¢žé‡æœç´¢ä¾†æŸ¥æ‰¾ä½¿ç”¨è€…給出的字符串。
        history-search-forward
               從當å‰è¡Œé–‹å§‹å‘剿œç´¢æ­·å²ï¼ŒæŸ¥æ‰¾å¾žç•¶å‰è¡Œæ¼•  point  之間的字符串。
               這是一茷D增é‡çš„æœç´¢ã€‚
        history-search-backward
               從當å‰è¡Œé–‹å§‹å‘後æœç´¢æ­·å²ï¼ŒæŸ¥æ‰¾å¾žç•¶å‰è¡Œæ¼•  point  之間的字符串。
               這是一茷D增é‡çš„æœç´¢ã€‚
        yank-nth-arg (M-C-y)
               å°‡å‰ä¸€èŒ¤Rä»¤çš„ç¬¬ä¸€èŒæŠ   (通常是上一行的第二茧)   æ’入到  point
               ä½ç½®ã€‚æœ‰åƒæ•¸ n 時,將å‰ä¸€èŒ¤R令的第 n  茧  (å‰ä¸€èŒ¤R令中的詞從  0
               é–‹å§‹p數) æ’入到 point ä½ç½®ã€‚tæ•¸åƒæ•¸å‰‡æ’å…¥å‰ä¸€èŒ¤R令佷 n 茧。
        yank-last-arg (M-., M-_)
               æ’å…¥å‰ä¸€èŒ¤Rä»¤çš„æœ€å¾Œä¸€èŒæŠ (ä¸Šä¸€æ­·å²æ¢ç›®çš„æœ€å¾Œä¸€èŒ§)ã€‚æœ‰åƒæ•¸æ™‚,
               行為類似於     yank-nth-arg。後繼的     yank-last-arg     調用將
               從歷å²åˆ—表中å‘å¾Œç§»å‹•ï¼Œä¾æ¬¡å°‡æ¯è¡Œçš„æœ€å¾Œä¸€èŒæŠï›„﹞J。
        shell-expand-line (M-C-e)
               æ“´å±•è¡Œï¼Œåƒ   shell  åšçš„那樣。其中包å«åˆ¥åå’Œæ­·å²æ“´å±•,還有所有的
               shell 詞的擴展。 åƒè¦‹ä¸‹æ‚¸ HISTORY EXPANSION ä¸­é—œæ–¼æ­·å²æ“´å±•çš„æ-
               z。
        history-expand-line (M-^)
               在當å‰è¡Œé€²è¡Œæ­·å²æ“´å±•。åƒè¦‹ä¸‹æ‚¸         HISTORY        EXPANSION
               ä¸­é—œæ–¼æ­·å²æ“´å±•çš„æz。
        magic-space
               在當å‰è¡Œé€²è¡Œæ­·å²æ“´å±•,並æ’入一茠躓ç¢Cåƒè¦‹ä¸‹æ‚¸ HISTORY EXPANSION
               ä¸­é—œæ–¼æ­·å²æ“´å±•çš„æz。
        alias-expand-line
               在當å‰è¡Œé€²è¡Œåˆ¥å擴展,åƒè¦‹ä¸Šæ‚¸ ALIASES ä¸­é—œæ–¼åˆ¥åæ“´å±•çš„æz。
        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)
               啟動一蚑s輯器,編輯當å‰å‘½ä»¤è¡Œï¼Œå°‡çµæžœä½œç‚º shell 命令é‹è¡Œã€‚  Bash
               將便¬¡è©¦è‘—é‹è¡Œ $FCEDIT, $EDITOR, å’Œ emacs 作為編輯器。
 
    Commands for Changing Text            本
        delete-char (C-d)
               刪除        point        處的字符。如果        point       在行-
               滿A行中沒有字符,最後一次輸入的字符                 沒有被關è¯åˆ°
               delete-char,將返回 EOF.
        backward-delete-char (Rubout)
               刪除游標之後的字符。當給出一èšï›˜çš„åƒæ•¸æ™‚,ä¿å­˜åˆªé™¤çš„æ–‡æœ¬åˆ°  kill
               ring 中。
        forward-backward-delete-char
               åˆªé™¤æ¸¸æ¨™ä¸‹çš„å­—ç¬¦ï¼Œé™¤éžæ¸¸æ¨™åœ¨è¡Œå°¾ï¼Œæ­¤æ™‚刪除游標後的字符。
        quoted-insert (C-q, C-v)
               å°‡è¼¸å…¥çš„ä¸‹ä¸€å­—ç¬¦ä¿æŒå„¤ä¾˜K加到行中。例如,å¯ä»¥ç”¨å®ƒä¾†æ’入類似  C-q
               的字符。
        tab-insert (C-v TAB)
               æ’入一虒鶖ç˜é¡«é£½C
        self-insert (a, b, A, 1, !, ...)
               æ’å…¥éµå…¥çš„字符。
        transpose-chars (C-t)
               å°‡  point  之å‰çš„字符å‘å‰ç§»å‹•ï¼Œè¶ŠéŽ  point  è™•çš„å­—ç¬¦ï¼ŒåŒæ™‚也改變
               point çš„ä½ç½®ã€‚ 如果 point åœ¨è¡Œå°¾ï¼Œå°‡èª¿æ› point  之å‰çš„兩茼r符。-
               tæ•¸åƒæ•¸æ²’有作用。
        transpose-words (M-t)
               å°‡  point  之å‰çš„詞å‘å‰ç§»å‹•ï¼Œè¶ŠéŽ point è™•çš„è©žï¼ŒåŒæ™‚也改變 point
               çš„ä½ç½®ã€‚ 如果 point 在行尾,將調æ›è¡Œä¸­çš„æœ€å¾Œå…©èŒ§ã€‚
        upcase-word (M-u)
               å°‡ç•¶å‰ (或下一) 詞變æˆå…¨å¤§å¯«ã€‚有t滌æŠï𾿰¶Aå°‡å‰ä¸€èŒ§è®Šç‚ºå¤§å¯«ï¼Œ
               但是ä¸ç§»å‹• point。
        downcase-word (M-l)
               å°‡ç•¶å‰ (或下一) 詞變æˆå…¨å°å¯«ã€‚有t滌æŠï𾿰¶Aå°‡å‰ä¸€èŒ§è®Šç‚ºå°å¯«ï¼Œ
               但是ä¸ç§»å‹• point。
        capitalize-word (M-c)
               å°‡ç•¶å‰   (或下一)   詞變為漲r大寫。有t滌æŠï𾿰¶Aå°‡å‰ä¸€èŒ§è®Šç‚º-
               æ¼²r大寫, 但是ä¸ç§»å‹• point。
        overwrite-mode
               控制æ’å…¥/改寫模å¼ã€‚給出一茈蕪蒱æŠï𾿰¶A切æ›ç‚ºæ”¹å¯«æ¨¡å¼ã€‚給出一-
               茷D正數  åƒæ•¸æ™‚,切æ›ç‚ºæ’入模å¼ã€‚這茤R令åªå½±éŸ¿  emacs   模å¼ï¼›vi
               æ¨¡å¼               的改寫與此ä¸åŒã€‚æ¯èš¢              readline()
               的調用都以æ’入模å¼é–‹å§‹ã€‚在改寫模å¼ä¸‹ï¼Œ    é—œè¯åˆ°     self-insert
               çš„å­—ç¬¦æ›¿æ›  point  è™•çš„å­—ç¬¦ï¼Œè€Œä¸æ˜¯å°‡å®ƒæŽ¨åˆ°å³é‚Šã€‚  é—œè¯åˆ°  back-
               ward-delete-char     çš„å­—ç¬¦ä»¥ç©ºæ ¼æ›¿æ›      point      å‰çš„字符。
               é è¨­æƒ…æ³ä¸‹ï¼Œé€™èŒ¤R令沒有關è¯ã€‚
 
    Killing and Yanking                K
        kill-line (C-k)
               剪切從 point 到行尾的文本。
        backward-kill-line (C-x Rubout)
               åå‘剪切到行滿C
        unix-line-discard (C-u)
               åå‘剪切到行滿C與        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--)
               將這èšïš¶r加入已有的            (already            accumulating)
               åƒæ•¸ä¸­ï¼Œæˆ–è€…é–‹å§‹æ–°çš„åƒæ•¸ã€‚ M-- 開始一è_å®šçš„åƒæ•¸ã€‚
        universal-argument
               é€™æ˜¯æŒ‡å®šåƒæ•¸çš„å¦ä¸€ç¨®æ–¹æ³•。如果這茤R令後掘繺è‘@茤峖hèšïš¶r,
               å¯èƒ½é‚„包å«å‰å°Žçš„-
               tè™Ÿï¼Œé€™äº›æ•¸å­—å®šç¾©äº†åƒæ•¸ã€‚å¦‚æžœå‘½ä»¤ä¹‹å¾Œè·Ÿéš¨è‘—æ•¸å­—ï¼Œå†æ¬¡åŸ·è¡Œ   uni-
               versal-argument
               å°‡çµæŸæ•¸å­—åƒæ•¸ï¼Œä½†æ˜¯å…¶ä»–情æ³ä¸‹è¢«å¿½ç•¥ã€‚有一種特殊情æ³ï¼Œå¦‚果命令之後緊接著
               一茖禱D數字或tè™Ÿçš„å­—ç¬¦ï¼Œä¸‹ä¸€å‘½ä»¤çš„åƒæ•¸p數將憧H 4。 åƒæ•¸p數åˆå§‹æ˜¯
               1,因此第一次執行這茖è»ïš±Aä½¿å¾—åƒæ•¸p數為 4,  ç¬¬äºŒæ¬¡åŸ·è¡Œä½¿å¾—åƒæ•¸-
               p數為 16,以此類推。
 
    Completing    å…¨
        complete (TAB)
               è©¦è‘—å° point 之å‰çš„æ–‡æœ¬é€²è¡Œè£œå…¨ã€‚ Bash 便¬¡è©¦è‘—將文本作為一蚥僆q
               (如果文本以 $  é–‹å§‹),一茖æ´å³ˆæ€žW  (如果文本以  ~  é–‹å§‹),主機å
               (如果文本以       @       é–‹å§‹),或者命令       (以åŠåˆ¥å和函數)
               來補全。如果這些都沒有匹é…,將嘗試檔å補全。
        possible-completions (M-?)
               列出 point 之å‰çš„æ–‡æœ¬å¯èƒ½çš„補全。
        insert-completions (M-*)
               æ’å…¥ possible-completions 已產生的 point 之å‰çš„æ–‡æœ¬æ‰€æœ‰çš„補全。
        menu-complete
               與     complete     相似,但是使用å¯èƒ½çš„補全列表中的æŸèŒªït替æ›-
               n補全的詞。  契_執行 menu-complete 將鿭·å¯èƒ½çš„補全列表,æ’å…¥æ¯-
               茪ït。   到é”補全列表的çµå°¾æ™‚,鳴終端響鈴   (按照    bell-style
               的設置來åš)  並æ¢å¾©åˆå§‹çš„æ–‡æœ¬ã€‚  åƒæ•¸ n 將在匹é…列表中å‘å‰ç§»å‹• n
               步;tæ•¸åƒæ•¸å¯ä»¥ç”¨æ–¼åœ¨åˆ—表中å‘後移動。     這茤R令應當與      TAB
               éµé—œè¯ï¼Œä½†æ˜¯é è¨­æƒ…æ³ä¸‹æ˜¯æ²’有關è¯çš„。
        delete-char-or-list
               åˆªé™¤æ¸¸æ¨™ä¸‹çš„å­—ç¬¦ï¼Œå¦‚æžœä¸æ˜¯åœ¨è¡Œæ¼«å³–瑽    (類似    delete-char)。
               如果在行尾,行為與      possible-completions      一P。      這-
               茤R令é è¨­æ²’有關è¯ã€‚
        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)
               å¥s執行上次定義的éµç›¤å®ï¼Œå³é¡¯ç¤ºå‡ºå®ä¸­çš„字符,好åƒå®ƒ-
               怓O從éµç›¤è¼¸å…¥çš„一樣。
 
    Miscellaneous
        re-read-init-file (C-x C-r)
               讀入 inputrc 檔案的內容,åˆä¸¦å…¶ä¸­çš„æŒ‰éµé—œè¯å’Œè®Šé‡è³¦ïŸ«C
        abort (C-g)
               å–æ¶ˆç•¶å‰ç·¨è¼¯å‘½ä»¤ï¼Œé³´çµ‚端響鈴 (按照 bell-style 的設置來åš)。
        do-uppercase-version (M-a, M-b, M-x, ...)
               如果有              Meta              å‰ç¶´çš„字符               x
               是å°å¯«çš„ï¼Œé‚£éº¼èˆ‡å‘½ä»¤ç›¸é—œé€£çš„æ˜¯å°æ‡‰çš„大寫字符。
        prefix-meta (ESC)
               將輸入的下一茼r符加上 Meta å‰ç¶´ã€‚ ESC f 等價於 Meta-f.
        undo (C-_, C-x C-u)
               增é‡çš„æ’¤éŠ·ï¼Œåˆ†åˆ¥è¨˜ä½æ¯ä¸€è¡Œã€‚
        revert-line (M-r)
               撤銷這一行的所有蚹鵅C這與執行命令                           undo
               足夠多次的效果相åŒï¼Œå°‡é€™ä¸€è¡Œæ¢å¾©åˆ°åˆå§‹ç‹€æ…‹ã€‚
        tilde-expand (M-&)
               å°ç•¶å‰è©žé€²è¡Œæ³¢æµªç·šæ“´å±•。
        set-mark (C-@, M-<space>)
               在 point 處設置 mark。如果給出了數滌æŠïš±A標記被設置到那茼鼽m。
        exchange-point-and-mark (C-x C-x)
               äº¤æ›                           point                          å’Œ
               markã€‚ç•¶å‰æ¸¸æ¨™ä½ç½®è¢«è¨­ç½®ç‚ºä¿å­˜çš„ä½ç½®ï¼ŒèˆŠæ¸¸æ¨™ä½ç½®è¢«ä¿å­˜ç‚º mark。
        character-search (C-])
               讀入一茼r符,point 移動到這茼r符下一次出ç¾çš„地方。t數將æœç´¢ä¸Šä¸€-
               茈Xç¾ã€‚
        character-search-backward (M-C-])
               讀入一茼r符,point   移動到這茼r符上一次出ç¾çš„地方。t數將æœç´¢ä¸‹-
               悸漸Xç¾ã€‚
        insert-comment (M-#)
               沒有數滌æŠï𾿰¶Areadline      è®Šé‡      comment-begin       çš„-
               N被æ’入到當å‰è¡Œæ»¿C如果給出一èšï›˜çš„åƒæ•¸ï¼Œå‘½ä»¤çš„行為類似於一-
               èˆ}關:  如果行漲r符ä¸åŒ¹é…  comment-begin  的Aå°‡æ’入這蚧,å¦å‰‡
               åŒ¹é…                comment-begin                的字符將被從行-
               æ¼£R除。在兩種情æ³ä¸‹ï¼Œé€™ä¸€è¡Œéƒ½è¢«æŽ¥å—, 好åƒè¼¸å…¥äº†æ–°è¡Œç¬¦ä¸€æ¨£ã€‚com-
               ment-begin     çš„é è¨­ïŸ²ç‚±o這茤R令將當å‰è¡Œè®Šæˆ     ä¸€æ¢     shell
               注釋。如果數æŠïš¸ç‚±o注釋字符被刪除,這一行將被 shell 執行。
        glob-complete-word (M-g)
               point    之å‰çš„詞被當作路徑擴展的一èšç‹¾ï¹›A尾部暗å«äº†ä¸€èŒ¯P號。這-
               èšç‹¾â—‹Q用來 為å¯èƒ½çš„補全產生匹é…的檔å列表。
        glob-expand-word (C-x *)
               point                                之å‰çš„詞被當作路徑擴展的一-
               èšç‹¾ï¹›A匹é…的檔å的列表被æ’入,替æ›é€™èŒ§ã€‚        如果給出一èš-
               æŠïš±A在路徑擴展之å‰å°‡æ·»åŠ ä¸€èŒ¯P號。
        glob-list-expansions (C-x g)
               顯示           glob-expand-word          å¯èƒ½ç”¢ç”Ÿçš„æ“´å±•的列表,-
               姻虞礅e行。如果給出一èšï›˜åƒæ•¸ï¼Œåœ¨è·¯å¾‘擴展之å‰å°‡æ·»åŠ ä¸€èŒ¯P號。
        dump-functions
               å‘ readline  輸出æµåˆ—å°æ‰€æœ‰çš„å‡½æ•¸å’Œå®ƒæ€æ¾ˆé¶¬éž€é¶¬p。如果給出一èš-
               æŠïš±A 輸出將被格å¼åŒ–,å¯ä»¥ç”¨ä½œ inputrc 檔案一部分。
        dump-variables
               å‘ readline 輸出æµåˆ—å°æ‰€æœ‰å¯è¨­ç½®çš„ readline 函數。如果給出一èš-
               æŠïš±A 輸出將被格å¼åŒ–,å¯ä»¥ç”¨ä½œ inputrc 檔案一部分。
        dump-macros
               å‘ readline  輸出æµåˆ—å°æ‰€æœ‰é—œè¯åˆ°å®çš„  readline  按éµåºåˆ—以åŠå®ƒ-
               抰擖X的字符串。     如果給出一èšï›˜åƒæ•¸ï¼Œè¼¸å‡ºå°‡è¢«æ ¼å¼åŒ–,å¯ä»¥ç”¨ä½œ
               inputrc 檔案一部分。
        display-shell-version (C-x C-v)
               é¡¯ç¤ºç•¶å‰ bash 實例的版本信æ¯ã€‚
 
    Programmable Completion             
        當試圖å°ä¸€èŒ¤Rä»¤çš„åƒæ•¸é€²è¡Œè©žçš„補全時,如果已經使用內建命令      complete
        定義了這茤R令的補全è¦å‰‡  (  compspec),將啟動å¯ç·¨ç¨‹è£œå…¨åŠŸèƒ½  (åƒè¦‹ä¸‹æ‚¸
        shell            O(SHELL BUILTIN COMMANDS) 章節)。
 
        漸,命令å被確èªã€‚如果é‡å°é€™èŒ¤R令有補全è¦å‰‡çš„定義,那麼將使用
        è¦å‰‡ä¾†ç”¢ç”Ÿå¯èƒ½çš„詞的補全的列表。如果命令詞是一虒çº|å…¨å,將漸æœç´¢
        é‡å°é€™è™’çº|å…¨åçš„è¦å‰‡ã€‚如果é‡å°é€™è™’çº|免忲’有找到è¦å‰‡ï¼Œå°‡å˜—試查找
        é‡å°æœ€å¾Œä¸€è“袟b後悸熙﹞尷熙W則。
 
        一旦找到了一茬W則,它將用作產生匹é…的詞。如果沒有找到,將進行上   Com-
        pleting 中æzçš„ bash é è¨­çš„補全。
 
        漸,將執行è¦å‰‡æŒ‡å®šçš„å‹•ä½œã€‚åªæœ‰ä»¥è¢«è£œå…¨çš„詞開始的匹é…è©žæ‰æœƒè¢«è¿”回。
        當在檔案或目錄å補全中使用   -f   或   -d  é¸é …時,shell  è®Šé‡  FIGNORE
        將用於å°åŒ¹é…é€²è¡ŒéŽæ¿¾ã€‚
 
        接下來,將產生所有由-G               é¸é …çµ¦å‡ºçš„æª”åæ“´å±•æ¨¡å¼æŒ‡å®šçš„補全。
        模å¼ç”¢ç”Ÿçš„詞ä¸å¿…匹é…n補全的詞。shell           è®Šé‡          GLOBIGNORE
        䏿œƒç”¨æ–¼éŽæ¿¾åŒ¹é…çµæžœï¼Œä½†æ˜¯è®Šé‡ FIGNORE 會被使用。
 
        接下來,將考慮        -W         é¸é …çš„åƒæ•¸æŒ‡å®šçš„字符串。這茼r符串漸被
        åŠƒåˆ†ï¼Œç”¨ç‰¹æ®Šè®Šé‡    IFS   中的字符作為分隔符。shell   引用被當作一茧。
        接下來,æ¯èŒ§è¢«æ“´å±•,使用上 EXPANSION 中æzçš„ brace  expansion,  tilde
        expansion,  parameter  和  variable  expansion,  command  substitution,
        arithmetic       expansion,       ä»¥åŠ        pathname        expansion
        è¦å‰‡è™•ç†ã€‚å°æ–¼çµæžœï¼Œå†ä½¿ç”¨ä¸Š   Word   Splitting  中æzçš„è¦å‰‡åŠƒåˆ†æˆè©žã€‚
        æ“´å±•çš„çµæžœèˆ‡n補全的詞進行å‰éƒ¨ä¸€P的比較,匹é…的詞æˆç‚ºå¯èƒ½çš„補全。
 
        在這些匹é…被產生後,任何由    -F     å’Œ     -C     é¸é …指定的     shell
        å‡½æ•¸å’Œå‘½ä»¤å°‡è¢«åŸ·è¡Œã€‚ç•¶å‘½ä»¤æˆ–å‡½æ•¸è¢«åŸ·è¡Œæ™‚ï¼Œè®Šé‡  COMP_LINE å’Œ COMP_POINT
        被賦A使用上   Shell    Variables    中的è¦å‰‡ã€‚    如果n執行    shell
        å‡½æ•¸ï¼Œé‚„å°‡è¨­ç½®è®Šé‡ COMP_WORDS å’Œ COMP_CWORD 當函數或命令被執行時,第一-
        èŒæŠïš¼Oç­‰å¾…åƒæ•¸è¢«è£œå…¨çš„命令的å稱,         ç¬¬äºŒèŒæŠïš¼On補全的詞,第三-
        èŒæŠïš¼Oç•¶å‰å‘½ä»¤è¡Œä¸­ï¼Œnè£œå…¨çš„è©žå‰æ‚¸ç†Šã€‚                             å°-
        nè£œå…¨çš„è©žç”¢ç”Ÿçš„è£œå…¨ä¸æœƒé€²è¡Œä»»ä½•éŽæ¿¾ï¼›å‡½æ•¸æˆ–å‘½ä»¤åœ¨ç”¢ç”ŸåŒ¹é…æ™‚有完全的自由。
 
        任何    -F    指定的函數將被漸執行。函數å¯ä»¥ä½¿ç”¨ä»»ä½•    shell   功能,
        包å«å…§å»ºå‘½ä»¤  compgen,來產生匹é…。它必須將å¯èƒ½çš„è£œå…¨æ”¾åˆ°æ•¸çµ„è®Šé‡  COM-
        PREPLY 中。
 
        接下來,任何       -C      é¸é …指定的命令將被執行,其執行環境與命令替æ›
        的環境相åŒã€‚å®ƒæ‡‰ç•¶å‘æ¨™æº–輸出列å°ä¸€è™’犮的列表,æ¯è¡Œä¸€è‚C
        åæ–œæ§“å¯ä»¥ç”¨ä¾†è½‰ç¾©ä¸€è™“s行符,如果需n的話。
 
        所有å¯èƒ½çš„補全都產生之後,將å°åˆ—表進行      -X     é¸é …æŒ‡å®šçš„ä»»ä½•éŽæ¿¾ã€‚
        éŽæ¿¾å™¨æ˜¯ä¸€èšç‹¾ï¹›Aå’Œè·¯å¾‘åæ“´å±•中的一樣;模å¼ä¸­çš„ & 替æ›ç‚º n補全的詞。字-
        惜Wçš„    &   å¯ä»¥ç”¨åæ–œæ§“è½‰ç¾©ï¼›åæ–œæ§“åœ¨é€²è¡ŒåŒ¹é…æ™‚被刪除。   任何匹é…這-
        èšç‹¾ã€žçˆ¾çŠ®å°‡å¾žåˆ—è¡¨ä¸­åˆªé™¤ã€‚å‰å°Žçš„         !          將使模å¼å«ç¾©ç›¸åï¼›
        這種情æ³ä¸‹ï¼Œä»»ä½•ä¸åŒ¹é…這èšç‹¾ã€žçˆ¾çŠ®å°‡è¢«åˆªé™¤ã€‚
 
        最後,B-P  å’Œ  -S  指定的任何å‰ç¶´å’Œå»¶ä¼¸æª”åè¢«æ·»åŠ åˆ°è£œå…¨åˆ—è¡¨çš„æ¯ æˆå¾Œ-
        情Açµæžœè¿”回給 readline 補全代碼,作為å¯èƒ½çš„補全列表。
 
        如果先å‰åŸ·è¡Œçš„動作沒有產生任何匹é…,並且在定義 compspec è¦å‰‡æ™‚,為 com-
        plete 命令æä¾›äº† -o dirname é¸é …,將嘗試目錄å補全。
 
        é è¨­æƒ…æ³ä¸‹ï¼Œå¦‚果找到了一茬W則,它產生的任何æ±è¥¿éƒ½è¢«è¿”回給補全代碼,
        作為å¯èƒ½çš„補全的全集。ä¸å†å˜—試é è¨­çš„   bash    補全,readline    é è¨­çš„
        檔åè£œå…¨ä¹Ÿæœƒç¦æ­¢ã€‚如果定義è¦å‰‡æ™‚,為  complete  命令æä¾›äº†  -o  default
        é¸é …,在è¦å‰‡æ²’æœ‰ç”¢ç”ŸåŒ¹é…æ™‚將進行 readline é è¨­çš„補全處ç†ã€‚
 
        當一茬W則指出期望目錄å補全時,å¯ç·¨ç¨‹è£œå…¨å‡½æ•¸å¼·åˆ¶ readline 在補全的å稱
        後æ²K加一è“袟b,如果它是一茖鴠媬的符號連接。然後還nç¶“éŽ  readline 變é‡
        mark-directories 的Bç†ï¼Œä¸ç®¡ readline è®Šé‡ mark-symlinked-directories
        的O什麼。
 
    v(HISTORY)
        當啟用內建命令  set  çš„  -o history é¸é …時,shell å…è¨±è¨ªå• command his-
        tory,以å‰è¼¸å…¥çš„命令的列表。 HISTSIZE 的峓@命令列表中ä¿å­˜çš„命令數é‡ã€‚
        éŽåŽ»       HISTSIZE              (é è¨­ç‚º500)       命令將被ä¿å­˜ã€‚shell
        å°‡æ¯æ¢å‘½ä»¤åœ¨é€²è¡Œåƒæ•¸å’Œè®Šé‡æ“´å±•ä¹‹å‰ ä¿å­˜åˆ°æ­·å²åˆ—表中  (åƒè¦‹ä¸Šæ‚¸  EXPAN-
        SION  段è½)ï¼Œä½†æ˜¯æ˜¯åœ¨æ­·å²æ“´å±•進行之後,並且nç¶“éŽ  shell è®Šé‡ HISTIGNORE
        å’Œ HISTCONTROL 處ç†ã€‚
 
        åœ¨å•Ÿå‹•æ™‚ï¼Œæ­·å²æ ¹æ“šä»¥è®Šé‡ HISTFILE  的隻W的檔案  (é è¨­æ˜¯  ~/.bash_his-
        tory)           進行åˆå§‹åŒ–。          如果需n的話,以          HISTFILE
        為å的檔案將被截斷,來包å«ä¸è¶…éŽè®Šé‡ HISTFILESIZE 的定的行數。當交互
        shell    退出時,最後    $HISTSIZE   行被從歷å²åˆ—表中複製到   $HISTFILE
        檔案中。如果啟用了   shell    é¸é …    histappend    (åƒè¦‹ä¸‹æ‚¸    shell
                   O(SHELL   BUILTIN   COMMANDS)   章節中å°å…§å»ºå‘½ä»¤   shopt   çš„æ-
        z)ï¼Œé€™äº›è¡Œè¢«è¿½åŠ åˆ°æ­·å²æª”案中,å¦å‰‡æ­·å²æª”案被覆蓋。如果         HISTFILE
        è¢«å–æ¶ˆå®šç¾©ï¼Œæˆ–è€…å¦‚æžœæ­·å²æª”案ä¸å¯å¯«ï¼Œæ­·å²å°‡ä¸æœƒä¿å­˜ã€‚ä¿å­˜æ­·å²ä¹‹å¾Œï¼Œ
        æ­·å²æª”案被截斷,以包å«ä¸è¶…éŽ   HISTFILESIZE    行。如果    HISTFILESIZE
        è¢«å–æ¶ˆå®šç¾©ï¼Œä¸æœƒé€²è¡Œæˆªæ–·æ“作。
 
        內建命令  fc  (åƒè¦‹ä¸‹æ‚¸  shell             O(SHELL BUILTIN COMMANDS) 章節)
        å¯ä»¥ç”¨ä¾†åˆ—出或蚹翵禱新執行歷å²åˆ—表中的一部分。內建命令          history
        å¯ä»¥ç”¨ä¾†é¡¯ç¤ºæˆ–èš¹åšå²åˆ—表,æ“ä½œæ­·å²æª”案。當使用命令行編輯時,æ¯ç¨®
        編輯模å¼éƒ½æœ‰æœç´¢å‘½ä»¤ï¼Œæä¾›å°æ­·å²åˆ—表的訪å•。
 
        shell   å…許控制些命令被ä¿å­˜åˆ°æ­·å²åˆ—表中。å¯ä»¥è¨­ç½®   HISTCONTROL    å’Œ
        HISTIGNORE  變é‡ï¼Œä¾†ä½¿å¾— shell åªä¿å­˜è¼¸å…¥å‘½ä»¤çš„一茪l集。shell é¸é … cmd-
        hist    如果被啟用,將使得    shell     將多行的命令的æ¯ä¸€è¡Œä¿å­˜åˆ°åŒä¸€-
        èšžå²æ¢ç›®ä¸­ï¼Œ 在需n的地方添加分號來ä¿è¨¼èªžç¾©çš„æ­£ç¢ºæ€§ã€‚shell é¸é … lithist
        使得  shell  ä¿å­˜å‘½ä»¤æ™‚,ä¿ç•™åµŒå…¥çš„æ–°è¡Œè€Œä¸æ˜¯ç”¨åˆ†è™Ÿä»£æ›¿ã€‚åƒè¦‹ä¸‹  shell
                   O(SHELL    BUILTIN    COMMANDS)    中,內建命令    shopt   çš„æ-
        zï¼Œæœ‰é—œè¨­ç½®å’Œå–æ¶ˆ shell é¸é …的信æ¯ã€‚
        shell      æ”¯æŒæ­·å²æ“´å±•機制,類似於      csh      ä¸­æ­·å²æ“´å±•。這一節æ-
        z了å¯ç”¨çš„語法特å¾ã€‚在交互的         shell        中這一機制被é è¨­å•Ÿç”¨ï¼Œ
        å¯ä»¥ä½¿ç”¨å…§å»ºå‘½ä»¤ set çš„ -H é¸é …來ç¦ç”¨å®ƒ (åƒè¦‹ä¸‹æ‚¸ shell            O(SHELL
        BUILTIN COMMANDS) 章節)。éžäº¤äº’çš„ shell é è¨­ä¸é€²è¡Œæ­·å²æ“´å±•。
 
        æ­·å²æ“´å±•將歷å²åˆ—表中的詞引入輸入æµä¸­ï¼Œä½¿å¾—å¯ä»¥æ–¹ä¾¿åœ°å¥‘_已執行命令,
        在當å‰è¼¸å…¥è¡Œä¸­ç‚ºå‰ä¸€èŒ¤R令æ’å…¥æ–°çš„åƒæ•¸ï¼Œ 或者快速蚰翰e一茤R令中的錯誤。
 
        æ­·å²æ“´å±•在讀入一整行後,在      shell      將它拆分æˆè©žä¹‹å‰ç«‹å³é€²è¡Œã€‚它
        由兩部分組æˆã€‚漸是判斷替æ›ä¸­ä½¿ç”¨æ­·å²åˆ—è¡¨ä¸­ä¸€è¡Œã€‚å…¶æ¬¡æ˜¯é¸æ“‡é‚£ä¸€è¡Œä¸­-
        n包å«åˆ°ç•¶å‰è¡Œä¸­çš„部分。                            從歷å²ä¸­é¸æ“‡çš„行稱為
        eventï¼Œå¾žé‚£ä¸€è¡Œä¸­é¸æ“‡çš„部分是    words。   å¯ä»¥ç”¨å¤šç¨®å¤šæ¨£çš„   modifiers
        來æ“縱所é¸çš„è©žã€‚åœ¨è®€å…¥è¼¸å…¥æ™‚ï¼Œè¡Œè¢«æŒ‰ç…§åŒæ¨£æ–¹å¼åˆ†è§£æˆè©žï¼Œ      因此多茈H
        metacharacter                 分隔的詞,如果被引號包å«ï¼Œå°±è¢«ç•¶æˆä¸€èŒ§ã€‚
        æ­·å²æ“´å±•ç”±æ­·å²æ“´å±•字符引入,é è¨­æ˜¯          !ã€‚åªæœ‰å斜槓           (\)
        和單引號å¯ä»¥å¼•ç”¨æ­·å²æ“´å±•字符。
 
        內建命令  shopt å¯ä»¥è¨­å®šå¤šèš‡é¾ è„¹ï¼Œä¾†èª¿æ•´æ­·å²æ“´å±•的行為。如果 shell é¸é …
        histverify 被啟用 (åƒè¦‹å…§å»ºå‘½ä»¤ shopt  çš„æz),並且正在使用  readlin  A
        æ­·å²æ›¿æ›ä¸æœƒè¢«ç«‹å³å‚³çµ¦    shell   解釋器。與此相å°ï¼Œæ“´å±•後的行被å¥s載入
        readline      編輯緩沖å€ï¼Œé€²è¡Œé€²ä¸€æ­¥çš„蚹鵅C如果正在使用      readlin  A
        並且啟用了 shell é¸é … histreedi  A å¤±æ•—çš„æ­·å²æ›¿æ›å°‡è¢«å¥s載入到 readline
        編輯緩沖å€ï¼Œé€²è¡Œæ”¹æ­£ã€‚內建命令          history          çš„          -p
        é¸é …å¯ä»¥ç”¨ä¾†åœ¨åŸ·è¡Œä¹‹å‰æŸ¥çœ‹æ­·å²æ“´å±•將如何進行。內建命令  history  çš„  -s
        é¸é …å¯ä»¥ç”¨ä¾†åœ¨æ­·å²åˆ—表末尾添加命令,而ä¸çœŸæ­£åŸ·è¡Œå®ƒæ€´A從而
        在接下來的調用中å¯ä»¥ä½¿ç”¨å®ƒæ€´C
 
        shell  å…è¨±æŽ§åˆ¶æ­·å²æ“´å±•機制使用的多種字符 (åƒè¦‹ä¸Šæ‚¸ Shell Variables 中
        histchars çš„æz)。
 
    Event Designators
        事件指示器 (event designator) 是一蚢åšå²åˆ—表中æŸèŒ¤R令行æ¢ç›®çš„引用。
 
        !      開始一茤R令替æ›ï¼Œé™¤éžå¾ŒæŽ˜è¸H的是 blank, newline, = 或是 (.
        !n     引用命令行 n.
        !-n    引用當å‰å‘½ä»¤è¡Œæ¸›åŽ» n.
        !!     引用上一æ¢å‘½ä»¤ã€‚這是 `!-1' çš„åŒç¾©è©žã€‚
        !string
               引用最近的以 string 開始的命令。
        !?string[?]
               å¼•ç”¨æœ€è¿‘çš„åŒ…å« string 的命令。尾部的 ?  å¯ä»¥è¢«å¿½ç•¥ï¼Œå¦‚æžœ  string
               之後緊接著一虓s行符。
        ^string1^string2^
               快速替æ›ã€‚契_上一æ¢å‘½ä»¤ï¼Œå°‡    string1   替æ›ç‚º   string2.    與
               ``!!:s/string1/string2/'' 等價 (åƒè¦‹ä¸‹æ‚¸         (Modifiers))。
        !#     到此為止輸入的整茤R令行。
 
    Word Designators
        詞指示器 (word designator) 用於從 event 䏭鏿“‡æœŸæœ›çš„詞。 :  分隔  event
        è¦å‰‡èˆ‡  word  指示器。它å¯ä»¥å¿½ç•¥ï¼Œå¦‚果詞指示器以  ^,  $,  *,  -,  或  %
        開始。詞被從行熄}始編號,第一茧被表示為       0。æ’入當å‰è¡Œä¸­çš„詞以單-
        茠躓璊戴j。
 
        0 (zero)
               第 0 èŒ§ã€‚å° shell 來將,這是命令å。
        n      第 n 茧。
        ^      ç¬¬ä¸€èŒæŠïš±C也就是,第 1 茧。
        $      æœ€å¾Œçš„åƒæ•¸ã€‚
        %      最近一次æœç´¢ `?string?' 匹é…的詞。
        x-y    一組詞;`-y' 是 `0-y' 的簡寫。
        *      所有詞,除了第  0  è‚C這是  `1-$' çš„åŒç¾©è©žã€‚如果 event ä¸­åªæœ‰ä¸€-
               茧,使用 * ä¹Ÿä¸æ˜¯éŒ¯èª¤ï¼›é€™ç¨®æƒ…æ³ä¸‹å°‡è¿”回空字符串。
        x*     x-$ 的簡寫。
        x-     -$ çš„ç°¡å¯«ï¼Œå°±åƒ x* 一樣,但是忽略最後一茧。
 
        如果給出了一 word 指示器,沒有給出 event è¦å‰‡ï¼Œå‰ä¸€èŒ¤R令將用作 event。
 
            (Modifiers)
        å¯é¸çš„  word  指示器之後,å¯ä»¥å‡ºç¾ä¸€èŒ¤å³–h茪Uz  modifiers  çš„åºåˆ—,æ¯ä¸€-
        茬ㄚe綴有 `:'。
 
        h      刪除檔å組æˆçš„尾部,åªä¿ç•™é ­éƒ¨ã€‚
        t      刪除檔å組æˆä¸­å‰æ‚¸æ¼²è§’åšAä¿ç•™å°¾éƒ¨ã€‚
        r      刪除 .xxx å½¢å¼ä¸­å°¾éƒ¨çš„å»¶ä¼¸æª”åæˆåˆ†ï¼Œä¿ç•™åŸºæœ¬å稱部分。
        e      刪除所有內容,ä¿ç•™å°¾éƒ¨çš„延伸檔å。
        p      åˆ—å°æ–°çš„命令,但是ä¸åŸ·è¡Œå®ƒã€‚
        q      å¼•ç”¨æ›¿æ›æ‰€å¾—的詞,使它ä¸å†é€²è¡Œæ›¿æ›ã€‚
        x      å¼•ç”¨æ›¿æ›æ‰€å¾—的詞,類似與     q,     但是會根據      blank         
               和新行符分解為詞。
        s/old/new/
               將事件行中出ç¾çš„第一  old 替æ›ç‚º new  C 任何分隔符都å¯ä»¥ç”¨ä¾†ä»£æ›¿
               /,最後一茪戴j符是å¯é¸çš„,如果它是事件行的最後一茼r符。  old  å’Œ
               new    中的分隔符å¯ä»¥ç”¨ä¸€èŒªç‚±è¢Ÿb來引用。如果    &   出ç¾åœ¨   new
               中,它將替æ›ç‚º   old  C   å¯ä»¥ç”¨å–®èŒªç‚±è¢Ÿb來引用    &。如果    old
               為空,它將設置為最後替æ›çš„          old  A          或者,如果å‰-
               惆Sæœ‰ç™¼ç”ŸéŽæ­·å²æ›¿æ›ï¼Œå°±æ˜¯ !?string[?]  æœç´¢ä¸­çš„æœ€å¾Œä¸€ string  C
        &      契_上一次替æ›ã€‚
        g      使得改變被整茖韟璈ç£ç­ã€‚用於與    `:s'    或    `:&'     çµåˆ
               (例如,`:gs/old/new/')。               如果與               `:s'
               çµåˆä½¿ç”¨ï¼Œä»»ä½•分隔符都å¯ä»¥ç”¨ä¾†ä»£æ›¿          /,          最後一-
               茪戴j符是å¯é¸çš„,如果它是事件行的最後一茼r符。
        除éžå¦å¤–èªªæ˜Žï¼Œé€™ä¸€ç« ä»‹ç´¹çš„å…§å»ºå‘½ä»¤å¦‚æžœæŽ¥å—  -  引導的é¸é …,那麼它也接å—
        -- ä½œç‚ºåƒæ•¸ï¼Œä¾†æŒ‡ç¤ºé¸é …çš„çµæŸ
        : [arguments]
               沒有效果;這茤R令除了擴展      arguments       並且作任何指定的-
               å’¿wå‘之外,ä¸åšä»»ä½•事。 退出時返回0。
 
         .  filename [arguments]
        source filename [arguments]
               讀å–ä¸¦åœ¨ç•¶å‰  shell  環境中執行 filename 中的命令,返回 filename
               中最後一茤R令的返回狀態。如果       filename        中ä¸åŒ…嫿–œæ§“
               (slash),系統將在   PATH  ä¸­æŸ¥æ‰¾åŒ…å«  filename  的目錄。在  PATH
               中æœç´¢çš„æª”案ä¸å¿…是å¯åŸ·è¡Œçš„。 如果 bash 䏿˜¯é‹è¡Œæ–¼ posix mode,當
               PATH 中找ä¸åˆ°æª”案時會在當å‰ç›®éŒ„æœç´¢ã€‚如果 shopt 內建命令的 sour-
               cepath  é¸é …被關閉,  PATH  將䏿œƒè¢«æœç´¢ã€‚如果有任何   arguments
               ,它怞足   filename  çš„ä½ç½®åƒæ•¸  (positional  parameters),å¦å‰‡
               ä½ç½®åƒæ•¸ä¸ç™¼ç”Ÿè®ŠåŒ–。   返回狀態是稿本中最後一茤R令退出時的狀態。
               沒有執行命令則返回0,沒有找到或ä¸èƒ½è®€å– filename 時返回false。
 
        alias [-p] [name[=value] ...]
               Alias ä¸å¸¶åƒæ•¸æˆ–者帶 -p åƒæ•¸é‹è¡Œæ™‚å°‡åœ¨æ¨™æº–è¼¸å‡ºä»¥é€™æ¨£çš„æ ¼å¼ alias
               name=value 給出別å列表。 å¦‚æžœæœ‰åƒæ•¸ï¼Œå°‡å‰µå»ºæä¾›äº† value çš„ name
               的別å。 value 中尾部的空格使得別å被擴展時,下一茧åšåˆ¥å替æ›ã€‚
               å°æ–¼åƒæ•¸åˆ—表中的æ¯ä¸€   name,如果    value    沒有    給出,這-
               èOåçš„å稱和ï |被列å°å‡ºä¾†ã€‚   Alias   返回   true   é™¤éž   name
               沒有定義為別å。
 
        bg [jobspec]
               ä½¿æŽ›èµ·çš„ç¨‹å¼     jobspec      在I景繼續執行,就好åƒå®ƒæ˜¯ç”¨      &
               啟動的一樣。如果沒有指定  jobspec,shell  æ„義上的  current  job
                     e  @  ~            將被使用。            bg             jobspec
               返回0,除éžç•¶å‰ç¦æ­¢äº†ä½œæ¥­æŽ§åˆ¶ï¼Œæˆ–者在å…許作業控制,但 是沒有找到
               jobspec ï¼Œæˆ–è€…å®ƒä¸æ˜¯åœ¨ä½œæ¥­æŽ§åˆ¶ä¸‹å•Ÿå‹•的時唌C
 
        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   éµå’ŒåŠŸèƒ½çš„ï¼Œå°‡ä¸€èŒ·é¶¬éŠ£ï“C和一    readline
               功能或å®é€²è¡Œé—œè¯ï¼Œæˆ–者設置一        readline        變é‡ã€‚æ¯ä¸€-
               茼béžé¸é …çš„åƒæ•¸éƒ½æ˜¯ä¸€èŒ¤R令,好åƒå®ƒæ˜¯åœ¨                  .inputrc
               中出ç¾çš„一樣。但是æ¯èššé¶¬p或者命令必須作為單ç¨çš„åƒæ•¸å‚³éžï¼›
               也就是這樣  '"\C-x\C-r":  re-read-init-file'。   å¦‚æžœæœ‰åƒæ•¸ï¼Œå®ƒ-
               怞釵p下的æ„義:
               -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 變é‡å’ŒïŸ«C
               -s     以程å¼å¯è®€çš„æ–¹å¼é¡¯ç¤º readline éµåºåˆ—å’Œå°æ‡‰çš„å®
               -S     顯示 readline å®å°æ‡‰çš„éµåºåˆ—和他抰擖X的字符串
               -f filename
                      從 filename 中讀å–éµåºåˆ—
               -q function
                      查詢那些éµå°‡åŸ·è¡Œfunction。
               -u function
                      å–æ¶ˆæ‰€æœ‰é—œè¯åˆ° function çš„éµã€‚
               -r keyseq
                      å–æ¶ˆç•¶å‰ä»»ä½• keyseq 的關è¯ã€‚
               -x keyseq:shell-command
                      使 shell-command 在 keyseq 按下時被執行。
 
               返回O0,除éžçµ¦å‡ºäº†ä¸€èŒªã„žéˆ±æ‚Oçš„é¸é …或是產生了一蚇欞~。
 
        break [n]
               從一 for, while, until, 或者  select  循環退出。  如果指定了  n
               ,就跳出  n  層循環。  n  å¿…é ˆ  >=  1。如果  n 比當å‰å¾ªç’°å±¤æ•¸é‚„-
               n大,將跳出所有循環。  返回O0,除éžåŸ·è¡Œ  break   的時   shell
               䏿˜¯åœ¨åŸ·è¡Œä¸€è‹`環。
 
        builtin shell-builtin [arguments]
               執行指定的  shell  å…§å»ºå‘½ä»¤ï¼Œå‚³éž  arguments ,返回命令的返回C
               這在定義了一茤M   shell    內建命令åŒå的函數時很有用,    在那-
               茖è»ïš´å°¹æ´å³ŠæˆèŒé¶¡ç”ˆè¡ˆé‡­æ¼¸\能。cd      命令常以這種方å¼å¥s定義。
               返回狀態是  false,如果指定的  shell-builtin   䏦䏿˜¯ä¸€   shell
               內建命令。
 
        cd [-L|-P] [dir]
               改變當å‰è·¯å¾‘到  dir。這蚥僆qçš„é è¨­ïŸ¶O HOME ç›®éŒ„ã€‚ç’°å¢ƒè®Šé‡ CDPATH
               å®šç¾©äº†åŒ…å«  dir  çš„æœç´¢è·¯å¾‘。在  CDPATH  中å¯é¸çš„路徑å以冒號(:)
               分隔。   CDPATH  中的空路徑å與當å‰è·¯å¾‘相åŒï¼Œå°±æ˜¯  ``.''.   如果
                       W  以斜槓  (/,slash)  起始,那麼  CDPATH  䏿œƒè¢«ä½¿ç”¨ã€‚   -P
               é¸é …是說使用物ç†è·¯å¾‘çµæ§‹è€Œä¸æ˜¯è·Ÿéš¨ç¬¦è™ŸéˆæŽ¥ï¼Œ(åƒè¦‹  set  命令中的
               -P  é¸é …);  -L  é¸é …å¼·åˆ¶è·Ÿéš¨ç¬¦è™ŸéˆæŽ¥ã€‚å¦å¤–,é¸é …  -  與  $OLDPWD
               是相åŒçš„。 返回O true ,如果æˆåŠŸåœ°æ”¹è®Šäº†ç›®éŒ„ï¼›å¦å‰‡æ˜¯ false。
 
        command [-pVv] command [arg ...]
               é‹è¡Œ   command   ,使用   args   ä½œç‚ºåƒæ•¸ï¼Œç¦æ­¢é€šå¸¸çš„æŸ¥æ‰¾  shell
               函數的éŽç¨‹ã€‚åªæœ‰å…§å»ºå‘½ä»¤æˆ–者 PATH 中包å«çš„命令å¯ä»¥åŸ·è¡Œã€‚如果給出
               -p      åƒæ•¸ï¼Œ      command      的查找是以     PATH     çš„é è¨­-
               ï €i行的。這樣å¯ä»¥ä¿è¨¼æ‰¾åˆ°æ‰€æœ‰çš„æ¨™æº–工具。如果給出  -V  或者   -v
               é¸é …,關於   command   的說明將被列å°å‡ºä¾†ã€‚   -v  é¸é …使得表z這-
               茤R令的詞,或者n執行    command    需n執行的檔案顯示出來;    -V
               é¸é …給出更詳細的æz。如果給出  -V 或者 -v é¸é …,退出狀態在找到了
               command                                 的情æ³ä¸‹0,沒找到就是1。
               如果沒有æä¾›é¸é …,並且產生了錯誤或者                     command
               沒有找到,退出狀態就是127。å¦å‰‡ï¼Œ  command  內建命令的退出狀態是
               command 的退出狀態。
 
        compgen [option] [word]
               根據  option 為 word 產生å¯èƒ½çš„補全。option 是 內建命令 complete
               接å—的任何é¸é …,除了 -p å’Œ  -r,將匹é…çµæžœå¯«åˆ°æ¨™æº–輸出。  當使用
               -F     或     -C     é¸é …時,å¯ç·¨ç¨‹è£œå…¨åŠŸèƒ½æ‰€è¨­ç½®çš„å¤šæ•¸    shell
               變é‡å¦‚果存在,其Nä¸å†æœ‰ç”¨ã€‚
 
               產生的匹é…與å¯ç·¨ç¨‹è£œå…¨ä»£ç¢¼æ ¹æ“šè£œå…¨è¦å‰‡åŠ ä¸Šç›¸åŒçš„æ¨™èªŒç›´æŽ¥ç”¢ç”Ÿçš„çµæžœç›¸åŒã€‚
               如果指定了 wordï¼Œåªæœ‰åŒ¹é… word çš„è£œå…¨çµæžœå°‡è¢«é¡¯ç¤ºå‡ºä¾†ã€‚
 
               返回åºuï¼Œé™¤éžæä¾›äº†éžæ³•çš„é¸é …,或者沒有產生匹é…。
 
        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   é¸é …,
               或者沒有é¸é …çµ¦å‡ºï¼Œç¾æœ‰çš„補全è¦å‰‡å°‡è¢«é¡¯ç¤ºå‡ºä¾†ï¼Œä»¥ä¸€ç¨®å¯ä»¥-
               å’±å³Žå€æ“—J  的格å¼é¡¯ç¤ºã€‚-r é¸é …將一èŒwå°æ¯ name 的補全è¦å‰‡åˆªé™¤ã€‚
               或者,如果沒有給出 name,將刪除所有補全è¦å‰‡ã€‚
 
               嘗試詞的補全時,應用這些補全è¦å‰‡çš„éŽç¨‹åœ¨ä¸Š Programmable Comple-
               tion(å¯ç·¨ç¨‹è£œå…¨) 中詳z。
 
               å…¶ä»–é¸é …,如果給出的話,具有下列æ„義。-G,  -W,  å’Œ -X é¸é …çš„åƒæ•¸
               (如果需n的話,還包括        -P        å’Œ        -S         é¸é …)
               應當被引用,é¿å…在執行內建命令 complete 之å‰è¢«æ“´å±•。
               -o comp-option
                       comp-option                控制著               compspec
                       除了簡單地產生補全之外的多種行為。           comp-option
                       å¯ä»¥æ˜¯å¦‚下之一:
                       default 使用   readline   çš„é è¨­æª”å補全,如果  compspec
                               沒有得到匹é…。
                       dirnames
                               進行目錄å補全,如果 compspec 沒有得到匹é…。
                       filenames
                               告訴                          readline,compspec
                               產生了檔å,使它å¯ä»¥é€²è¡Œä»»ä½•檔å專用的處ç†
                               (例如,給目錄å加上斜槓或消除尾部空白)。主n用於
                               shell 函數。
                       nospace 告訴 readline ä¸nå‘補全的詞在行的最後添加一茠躓
                               (這是é è¨­è¡Œç‚º)。
               -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
                       特殊變é‡ä¸­çš„字符作為定界符來拆分,æ¯-
                       茧痕G的詞被擴展。å¯èƒ½çš„è£œå…¨æ˜¯çµæžœåˆ—表            中匹é…-
                       n補全的詞的那一些。
               -C command
                       command                 將在一茪l                  shell
                       ç’°å¢ƒä¸­åŸ·è¡Œï¼Œå®ƒçš„çµæžœç”¨ä½œå¯èƒ½çš„補全。
               -F function
                       shell       函數       function      å°‡åœ¨ç•¶å‰      shell
                       ç’°å¢ƒä¸­åŸ·è¡Œã€‚ç•¶å®ƒçµæŸæ™‚,å¯èƒ½  的補全å¯ä»¥å¾žæ•¸çµ„元素  COM-
                       PREPLY 中得到。
               -X filterpat
                       filterpat               是一èšç‹¾ï¹›Aç”¨æ–¼æª”åæ“´å±•。所有å‰-
                       悸瑪龠筒Måƒæ•¸ç”¢ç”Ÿ   çš„å¯èƒ½çš„補全都nç¶“éŽé€™ä¸€æ­¥è™•ç†ï¼Œæ¯ä¸€-
                       茪ït  filterpat  的補全都  被從列表中刪除。為 filterpat
                       加上å‰å°Ž   !   ä½¿æ¨¡å¼æ„義相åï¼›   這種情æ³ä¸‹ï¼Œæ‰€æœ‰ä¸åŒ¹é…
                       filterpat 的模å¼è¢«åˆªé™¤ã€‚
               -P prefix
                       在所有其他é¸é …都處ç†éŽä¹‹å¾Œï¼Œprefix             被加到æ¯-
                       茈ièƒ½çš„è£œå…¨å‰æƒ…C
               -S suffix
                       在所有其他é¸é …都處ç†éŽä¹‹å¾Œï¼Œsuffix             被加到æ¯-
                       茈i能的補全後情C
 
               返回åºu,除éžçµ¦å‡ºäº†éžæ³•çš„é¸é …,給出除  -p  å’Œ  -r  之外  çš„æŸ-
               蚇龠筑禸S有給出    name    åƒæ•¸ï¼Œè©¦åœ–åˆªé™¤ä¸€æ¢    name     的補全
               è¦å‰‡ä½†æ˜¯è¦å‰‡ä¸å­˜åœ¨ï¼Œæˆ–者添加補全è¦å‰‡æ™‚出錯。
 
        continue [n]
               復ä½åˆ°å¤–層      for,      while,      until,      或      select
               循環的下一次開始。如果指定了 n  A 復ä½åˆ°å‘外第 n 層循環的開始。 n
               å¿…é ˆ   >=  1。如果  n  比外部循環的層數n多,將復ä½åˆ°æœ€å¤–層的循環
               (``top-level'' loop,頂層循環)。  返回O  0,除éžåŸ·è¡Œ  continue
               時,shell 䏿˜¯åœ¨å¾ªç’°ä¹‹ä¸­ã€‚
 
        declare [-afFirtx] [-p] [name[=value]]
        typeset [-afFirtx] [-p] [name[=value]]
               è²æ˜Žè®Šé‡ä¸”/或設置它æ€ç˜§æ£å½C如果沒有給出   name  則顯示變é‡çš„C
               é¸é …    -p    將顯示æ¯èŒ¼W稱    name     的屬性和C當使用     -p
               時,其他é¸é …被忽略。é¸é …                                      -F
               ç¦æ­¢é¡¯ç¤ºå‡½æ•¸å®šç¾©ï¼›åªæœ‰å‡½æ•¸å和屬性會被顯示。  -F  é¸é …æš—å«   -f.
               下列é¸é …å¯ç”¨ä¾†åˆ¶åªè¼¸å‡ºå…·æœ‰æŒ‡å®šå±¬æ€§çš„變é‡ï¼Œæˆ–者為變é‡è¨­ç½®å±¬æ€§ï¼š
               -a     æ¯ name éƒ½æ˜¯æ•¸çµ„è®Šé‡ (åƒè¦‹ä¸Šæ‚¸ Arrays 段è½)。
               -f     åªä½¿ç”¨å‡½æ•¸å。
               -i     變é‡è¢«ç•¶ä½œä¸€èšžè’±ïš±F當變é‡è¢«è³¦ïŸ¸ä¼€N進行算術é‹ç®—      (åƒè¦‹
                             D(ARITHMETIC EVALUATION) 章節)。
               -r     使得     name      åªè®€ã€‚這些å稱ä¸èƒ½å†è¢«å¾ŒçºŒçš„賦yå¥è³¦-
                      峔消定義。
               -t     è¨­ç½®æ¯   name  çš„  trace(跟蹤)  屬性。被跟蹤的函數繼承了
                      調用者       shell       的       DEBUG       陷阱。trace
                      屬性å°è®Šé‡æ²’有特殊æ„義。
               -x     標記 name 為å¯ä»¥é€šéŽç’°å¢ƒå°Žå‡ºçµ¦å¾ŒçºŒå‘½ä»¤ã€‚
 
               使用  `+'  代替  `-'  å°‡é—œé–‰å±¬æ€§ï¼Œç‰¹æ®Šæƒ…æ³æ˜¯  +a ä¸èƒ½ç”¨æ–¼éŠ·æ¯€ä¸€
               數組變é‡ã€‚ç•¶ç”¨æ–¼å‡½æ•¸ä¸­æ™‚ï¼Œå®ƒä½¿å¾—æ¯ name æˆç‚ºå±€éƒ¨çš„ï¼Œå°±åƒ ä½¿ç”¨äº†
               local   命令。返回O   0,除éžé‡åˆ°äº†éžæ³•çš„é¸é …,試圖使用   ``-f
               foo=bar''         定義函數,試圖å‘åªè®€è®Šé‡è³¦ïŸ«Aè©¦åœ–å‘æ•¸çµ„變é‡è³¦-
               沒有使用復åˆçš„賦    語法   (åƒè¦‹ä¸Šæ‚¸   Arrays   段è½),name
               之䏀䏿˜¯æœ‰æ•ˆçš„        shell         變é‡å,試圖將數組變é‡çš„æ•¸çµ„
               狀態關閉,或者是試圖使用 -f 顯示一茪ㄕs在的函數。
 
        dirs [-clpv] [+n] [-n]
               沒有é¸é …時顯示當å‰ä¿å­˜çš„目錄。é è¨­è¼¸å‡ºç‚ºä¸€è¡Œï¼Œç›®éŒ„å用空格分開。
               å¯ä»¥ä½¿ç”¨        pushd        命令將目錄添加到列表,         popd
               命令將列表中的æ¢ç›®åˆªé™¤ã€‚
               +n     顯示  dirs  在ä¸å¸¶é¸é …執行時顯示的列表的第  n è“囓堙A從 0
                      開始自左算起。
               -n     顯示 dirs 在ä¸å¸¶é¸é …執行時顯示的列表的第  n  è“囓堙A從  0
                      開始自å³ç®—起。
               -c     刪除所有æ¢ç›®ï¼Œæ¸…空目錄棧。
               -l     產生長列表;é è¨­åˆ—表格å¼ä½¿ç”¨æ³¢æµªç·šä¾†è¡¨ç¤ºèŒªH目錄。
               -p     輸出目錄棧,一行一è‚C
               -v     輸出目錄棧,一行一è‚Aæ¯è“囓堳e悼[上它在棧中的ä½ç½®ç´¢å¼•。
 
               返回O 0,除éžçµ¦å‡ºäº†éžæ³•çš„åƒæ•¸ï¼Œæˆ–者 n 索引超出了目錄棧的Såœã€‚
 
        disown [-ar] [-h] [jobspec ...]
               沒有é¸é …æ™‚ï¼Œæ¯ jobspec 被從正在é‹è¡Œçš„作業表中刪除。如果給出了 -
               é¸é …ï¼Œæ¯ jobspec 並ä¸å¾žè¡¨ä¸­åˆªé™¤ï¼Œè€Œæ˜¯è¢«æ¨™è¨˜ï¼Œä½¿å¾—在 shell  接到
               SIGHUP  ä¿¡è™Ÿæ™‚ï¼Œä¸æœƒå‘作業發出  SIGHUP  信號。如果沒有給出  job-
               spec  A  也沒有給出  -a  或者  -r  é¸é …,將使用當å‰ä½œæ¥­  (current
               job)。如果沒有給出           jobspec  A          é¸é …          -a
               æ„味著刪除或標記所有作業;é¸é …   -r   ä¸å¸¶    jobspec    åƒæ•¸æ™‚-
               制æ“作åªå°æ­£åœ¨é‹è¡Œçš„作業進行。返回O       0ï¼Œé™¤éž      jobspec
               䏿Œ‡å®šæœ‰æ•ˆçš„作業。
 
        echo [-neE] [arg ...]
               輸出 arg,以空格分開,最後加一虓s行符。返回`是 0。  如果指定了
               -n,將ä¸åœ¨å°¾éƒ¨æ·»åŠ æ–°è¡Œç¬¦ã€‚å¦‚æžœçµ¦å‡ºäº†          -e          é¸é …,
               å°‡å…è¨±è§£é‡‹ä¸‹åˆ—åæ–œæ§“轉義的字符。                              -E
               é¸é …ç¦æ­¢é€™äº›è½‰ç¾©å­—符的解釋,å³ä½¿åœ¨é è¨­è§£é‡‹å®ƒæ€æ¼•t統中也是如此。
               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  一茪K比特字符,它的O八進制 nnn (零到三茪K進制數字)。
               \nnn   一茪K比特字符,它的O八進制 nnn (一到三茪K進制數字)。
               \xHH   一茪K比特字符,它的Oå六進制        HH        (一到兩-
                      茪Q六進制數字)。
 
        enable [-adnps] [-f filename] [name ...]
               å…è¨±æˆ–ç¦æ­¢                shell                å…§å»ºå‘½ä»¤ã€‚ç¦æ­¢ä¸€-
               茪澈堜R令使得ç£ç¢Ÿä¸Šçš„與內建命令åŒå
               的檔案得以é‹è¡Œï¼Œä¸å¿…使用它的全路徑,å³ä½¿                   shell
               一般在æœç´¢ç£ç¢Ÿä¸Šçš„å‘½ä»¤ä¹‹å‰ æœç´¢å…§å»ºå‘½ä»¤ã€‚如果使用了 -n é¸é …,æ¯
               name  éƒ½è¢«ç¦æ­¢ï¼›å¦å‰‡ï¼Œ  name 被å…許。例如,n使用 PATH 中æœç´¢åˆ°çš„
               test å‘½ä»¤è€Œä¸æ˜¯ shell 內建的那一è‚Aå¯ä»¥é‹è¡Œ ``enable -n  test''.
               é¸é …   -f   æ„味著從共享庫  filename  中加載新的內建命令  name  A
               如果系統支æŒå‹•態加載的話。é¸é …      -d      將刪除曾經用      -f
               加載的內建命令。如果沒有給出     name     åƒæ•¸ï¼Œæˆ–者給出了    -p
               é¸é …,將顯示  shell  內建命令的列表。如果沒有其他é¸é …åƒæ•¸ï¼Œ  這-
               茼C表åªåŒ…嫿‰€æœ‰è¢«å…許的        shell        內建命令;如果給出了
               -n,將åªé¡¯ç¤ºè¢«ç¦æ­¢çš„內建命令;如果給出了
               -aï¼Œé¡¯ç¤ºçš„åˆ—è¡¨ä¸­åŒ…å«æ‰€æœ‰å…§å»ºå‘½ä»¤ï¼Œé‚„有命令是å¦è¢«å…許的指示;
               如果給出了  -s,輸出被制為  POSIX  special  內建命令。   返回O
               0ï¼Œé™¤éž               name               䏿˜¯              shell
               內建命令,或者從共享庫中加載新的內建命令時出錯。
 
        eval [arg ...]
               arg 被讀å–並連çµç‚ºå–®ä¸€çš„命令。這茤R令然後被  shell  讀å–並執行,
               它的退出狀態被作為       eval      的藀^。如果沒有      args,
               或僅僅包å«ç©ºåƒæ•¸ï¼Œ eval 返回 0。
 
        exec [-cl] [-a name] [command [arguments]]
               如果指定了 command  A  å®ƒå°‡æ›¿æ›  shellã€‚ä¸æœƒç”¢ç”Ÿæ–°çš„進程。  argu-
               ments  æˆç‚º command çš„åƒæ•¸ã€‚如果給出了 -l é¸é …,shell 將在傳éžçµ¦
               command  的第   0   èŒæŠïš»e悼[上一茬s字符   (dash,`-')。這樣åšå’Œ
               login(1)     相åŒã€‚é¸é …     -c     使得命令     command    在一-
               茠鰾藿狺什鶡ç¢C如果給出了  -  A  shell  會將   name   作為第   0
               èŒæŠï›†ï¨æ’雉執行的命令。如果由於æŸç¨®é´ž]  as  the zeroth argument
               to the executed command.  If command ä¸èƒ½è¢«åŸ·è¡Œï¼Œéžäº¤äº’çš„  shell
               å°‡é€€å‡ºï¼Œé™¤éž            shell            é¸é …           execfail
               被設置為å…許,這種情æ³ä¸‹å®ƒè¿”回失敗。如果命令ä¸èƒ½åŸ·è¡Œï¼Œäº¤äº’çš„
               shell  返回失敗。  如果沒有指定  command  任何咿wå‘å°ç•¶å‰  shell
               發生作用,返回O 0。如果發生咿wå‘錯誤,返回狀態是 1。
 
        exit [n]
               使得     shell     以狀態      n      退出。如果忽略了      n  A
               退出狀態是最後執行的命令的退出狀態。在   shell  終止å‰ï¼Œå°  EXIT
               的陷阱將被執行。
 
        export [-fn] [name[=word]] ...
        export -p
               給出的å稱                                                 names
               被標記為自動地導出到後續執行的命令的環境中。如果給出了        -f
               é¸é …,å稱 names 指的是函數。如果沒有給出 names  A 或者如果給出了
               -p  é¸é …,將列å°åœ¨é€™  shell  中被導出的所有å字的列表。é¸é …  -n
               使得以此為å的變é‡çš„導出屬性被刪除。         export         返回
               0,除éžé‡åˆ°äº†éžæ³•çš„é¸é …,name   之䏀䏿˜¯æœ‰æ•ˆçš„   shell  變é‡å,
               或者給出了 -f é¸é …,而 name 䏿˜¯ä¸€èŒ–è»ïš±C
 
        fc [-e ename] [-nlr] [first] [last]
        fc -s [pat=rep] [cmd]
               命令袨_。第一種形å¼ä¸­ï¼Œæ­·å²åˆ—表中從      first      到      last
               Såœå…§çš„命令都被é¸å–。    First    å’Œ    last    å¯ä»¥æŒ‡å®šç‚ºå­—符串
               (å¯ä»¥å®šä½æœ€å¾Œä¸€èŒˆH此字符串開始的命令)    或者數字    (æ­·å²åˆ—表中
               的索引,t數被當作相å°ç•¶å‰å‘½ä»¤è™Ÿçš„åç§»)。如果沒有指定      last  A
               它在列舉時被設為當å‰å‘½ä»¤  (å› æ­¤  ``fc  -l  -10''  將輸出最後  10
               æ¢å‘½ä»¤),其他情æ³ä¸‹è¢«è¨­ç‚º     first  C    如果沒有指定    first  A
               它在編輯時被設為å‰ä¸€èŒ¤R令,列舉是設為 -16。
 
               é¸é …        -n         使得列舉時ä¸é¡¯ç¤ºå‘½ä»¤è™Ÿç¢¼ã€‚é¸é …         -r
               將命令順åºé€²è¡ŒæŽ‰æ›ã€‚如果給出了                                -l
               é¸é …,命令將列舉在標準輸出上。å¦å‰‡ï¼Œå°‡å•Ÿå‹•                 ename
               給出的編輯器,編輯包å«é€™äº›å‘½ä»¤çš„æª”案。如果沒有給出       ename  A
               å°‡ä½¿ç”¨è®Šé‡ FCEDIT 的A如果  FCEDIT  沒有定義就使用  EDITOR  çš„-
               C如果ä»ç„¶æ²’有定義,將使用                                 vi  C
               ç·¨è¼¯çµæŸå¾Œï¼Œè¢«ç·¨è¼¯çš„命令將回顯並執行。
 
               第二種形å¼ä¸­ï¼Œcommand  åœ¨æ¯  pat  的實例被  rep  替æ›å¾Œ   都被-
               å¥s執行。使用這種特性時å¯ä»¥èµ·ä¸€èŒ¼é‡Žå³ˆæ¼£Oå:     ``r=fc    -s'',
               這樣輸入 ``r cc'' å°‡é‹è¡Œæœ€å¾Œçš„以 ``cc''  開頭的命令,輸入  ``r''
               å°‡å¥s執行上一茤R令。
 
               如果使用第一種形å¼ï¼Œè¿”回O 0,除éžé‡åˆ°äº†éžæ³•çš„é¸é …,或 first 或
               last    指定的歷å²è¡Œæ•¸è¶…出了Såœã€‚如果給出了    -e    é¸é …,返回-
               O最後執行的命令的返回A或著是失敗,如果臨時檔案中的命令
               執行出錯。如果使用第二種形å¼ï¼Œè¿”回狀態是å¥såŸ·è¡Œçš„å‘½ä»¤ï¼Œé™¤éž  cmd
               沒有指定一茼陵蘆瑣å²è¡Œï¼Œé€™ç¨®æƒ…æ³ä¸‹ fc 返回失敗。
 
        fg [jobspec]
               å°‡     jobspec     æ¢å¾©è‡³å‰å°ï¼Œä½¿å®ƒæˆç‚ºç•¶å‰ä½œæ¥­ã€‚如果    jobspec
               ä¸å­˜åœ¨ï¼Œå°‡ä½¿ç”¨  shell  æ„義上的當å‰ä½œæ¥­   current   job。返回O
               被放到å‰å°çš„命令的狀態,或者是失敗,如果在ç¦ç”¨ä½œæ¥­æŽ§åˆ¶æ™‚é‹è¡Œï¼Œæˆ–者
               在啟用作業控制時é‹è¡Œï¼Œä½† jobspec 沒有指定有效的作業,或  jobspec
               指定了沒有使用作業控制的作業。
 
        getopts optstring name [args]
               getopts   ç”±   shell   程å¼ç”¨ä¾†è™•ç†ä½ç½®åƒæ•¸ã€‚   optstring  包å«-
               n識別的é¸é …字符;如果æŸèŒ¼rç¬¦è·Ÿéš¨è‘—å†’è™Ÿï¼Œé‚£éº¼é€™èš‡é¾ çµ°æ„¯ä¸€èŒæŠïš±A
               需-
               n用空白和它隔離開。冒號和å•號字符ä¸èƒ½ç”¨ä½œé¸é …å­—ç¬¦ã€‚æ¯æ¬¡å®ƒåŸ·è¡Œæ™‚,
               getopts   將下一蚇龠筒韘b   shell   è®Šé‡   name   中,如果  name
               ä¸å­˜åœ¨å°±åˆå§‹åŒ–它;下一胻處ç†çš„åƒæ•¸çš„ç´¢å¼•æ”¾åœ¨è®Šé‡ OPTIND ä¸­ã€‚æ¯æ¬¡
               shell 或 shell 稿本被執行的時 OPTIND 被åˆå§‹åŒ–為 1。當æŸèš‡é¾ çµ°-
               nåƒæ•¸æ™‚, getopts å°‡é‚£èŒæŠïš¹é¡åšƒåƒ†q OPTARG 中。shell 䏿œƒè‡ªå‹•å§œm
               OPTIN  F  在相åŒçš„  shell 中,如果nä½¿ç”¨æ–°çš„åƒæ•¸é›†åˆè€Œéœ€n多次調用
               getopts 時,必須手動姜m它。
 
               ç•¶é‡åˆ°é¸é …çµæŸçš„æ™‚唌Agetopts   以大於   0    的h出。    OPTIND
               被設置為第一茷Dé¸é …çš„åƒæ•¸çš„索引,name 被設置為 ?。
 
               getopts   通常解釋ä½ç½®åƒæ•¸ï¼Œä½†æ˜¯å¦‚æžœ   args   ä¸­çµ¦å‡ºäº†æ›´å¤šåƒæ•¸ï¼Œ
               getopts 將解釋它怴C
 
               getopts     能以兩種方å¼å ±å‘ŠéŒ¯èª¤ã€‚如果     optstring     的第一-
               茼r符是冒號,將使用                                       silent
               安éœçš„錯誤報告。通常的æ“作中,é‡åˆ°éžæ³•é¸é …或缺少é¸é …çš„åƒæ•¸æ™‚將列å°å‡º
               診斷信æ¯ã€‚å¦‚æžœè®Šé‡   OPTERR  被設置為  0ï¼Œä¸æœƒé¡¯ç¤ºéŒ¯èª¤æ¶ˆæ¯ï¼Œå³ä½¿
               optstring 的第一茼rç¬¦ä¸æ˜¯å†’號。
 
               如果發ç¾äº†ä¸€èŒ·D法的é¸é …,     getopts     å‘     name     中置入
               ?ï¼Œä¸¦ä¸”å¦‚æžœä¸æ˜¯å®‰éœæ¨¡å¼çš„話,列å°éŒ¯èª¤æ¶ˆæ¯ä¸¦å–消           OPTARG
               的定義。如果 getopts  æ˜¯å®‰éœæ¨¡å¼ï¼Œæ‰¾åˆ°çš„é¸é …字符將置入  OPTAR  A
               䏿œƒåˆ—å°è¨ºæ–·æ¶ˆæ¯ã€‚
 
               如果沒有找到需nçš„åƒæ•¸ï¼Œä¸¦ä¸”   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 使得輸出以一種å¯ä»¥-
               å’±å³Žå€æ“—J的格å¼é¡¯ç¤ºã€‚å¦‚æžœæ²’æœ‰çµ¦å‡ºåƒæ•¸ï¼Œ      或者åªçµ¦å‡ºäº†     -l
               é¸é …,已記錄的命令的信æ¯å°‡è¢«åˆ—å°å‡ºä¾†ã€‚     è¿”å›žçœŸï¼Œé™¤éž     name
               æ²’æœ‰æ‰¾åˆ°æˆ–çµ¦å‡ºäº†éžæ³•çš„é¸é …。
 
        help [-s] [pattern]
               顯示關於內建命令的有用的信æ¯ã€‚如果指定了  pattern  (        )  A help
               çµ¦å‡ºé—œæ–¼æ‰€æœ‰åŒ¹é…                                         pattern
               的命令的詳細幫助;å¦å‰‡æ‰€æœ‰å…§å»ºå‘½ä»¤çš„幫助和                 shell
               æŽ§åˆ¶çµæ§‹å°‡è¢«åˆ—å°å‡ºä¾†ã€‚ é¸é … -s 制信æ¯é¡¯ç¤ºç‚ºç°¡çŸ­çš„用法概n。  返回
               0ï¼Œé™¤éžæ²’æœ‰åŒ¹é… pattern 的命令。
 
        history [n]
        history -c
        history -d offset
        history -anrw [filename]
        history -p arg [arg ...]
        history -s arg [arg ...]
               ä¸å¸¶é¸é …的話,顯示帶行號的命令歷å²åˆ—è¡¨ã€‚åˆ—å‡ºçš„è¡Œä¸­å«æœ‰         *
               的已經被蚹儮Lã€‚åƒæ•¸  n  使得åªé¡¯ç¤ºæœ€å¾Œ  n  行。如果給出了  file-
               nameï¼Œå®ƒè¢«ç”¨åšæ­·å²æª”å;沒有的話,將使用       HISTFILE      çš„-
               @ç‚ºæ­·å²æª”å。é¸é …如果給出,則具有下列æ„義:
               -c     清空歷å²åˆ—表,刪除所有æ¢ç›®ã€‚
               -d offset
                      刪除 offset ä½ç½®çš„æ­·å²æ¢ç›®ã€‚
               -a     å°‡ ``æ–°'' çš„æ­·å²æ¢ç›® (è‡ªç•¶å‰ bash 會話開始輸入的歷å²å‘½ä»¤)
                      è¿½åŠ åˆ°æ­·å²æª”案中。
               -n     å°‡å°šæœªå¾žæ­·å²æª”案中讀å–çš„æ­·å²æ¢ç›®è®€å…¥ç•¶å‰æ­·å²åˆ—表。這些行是當å‰
                      bash 會話開始之後,æ‰è¿½åŠ åˆ°æ­·å²æª”案中的行。
               -r     è®€å–æ­·å²æª”案的內容,使用它怬@ç‚ºç•¶å‰æ­·å²ã€‚
               -w     å°‡ç•¶å‰æ­·å²åˆ—è¡¨å¯«å…¥æ­·å²æª”æ¡ˆï¼Œè¦†è“‹æ­·å²æª”案的鴞酗æ¼e。
               -p     å°å¾ŒçºŒçš„    args     é€²è¡Œæ­·å²æ›¿æ›ï¼Œåœ¨æ¨™æº–è¼¸å‡ºä¸Šé¡¯ç¤ºçµæžœã€‚
                      䏿œƒå°‡çµæžœå­˜å…¥æ­·å²åˆ—è¡¨ã€‚æ¯   args   éƒ½å¿…é ˆè¢«å¼•ç”¨ï¼Œä¾†ç¦æ­¢
                      普通的命令擴展。
               -s     å°‡                                                   args
                      ä¿å­˜åˆ°æ­·å²åˆ—表中,作為單ç¨çš„æ¢ç›®ã€‚æ­·å²åˆ—表中的最後一-
                      茤R令在添加 args 之å‰è¢«åˆªé™¤ã€‚
 
               返回  0,除éžé‡åˆ°äº†éžæ³•çš„é¸é …,讀/å¯«æ­·å²æª”案發生錯誤,在  -d  çš„
               åƒæ•¸ä¸­çµ¦å‡ºäº†ç„¡æ•ˆçš„               offsetï¼Œæˆ–è€…å°               -p
               çš„å¾ŒçºŒåƒæ•¸é€²è¡Œæ­·å²æ“´å±•失敗。
 
        jobs [-lnprs] [ jobspec ... ]
        jobs -x command [ args ... ]
               第一種形å¼åˆ—出正在é‹è¡Œçš„作業。é¸é …具有下列æ„義:
               -l     普通信æ¯ä¹‹å¤–,列出進程ID。
               -p     åªåˆ—出作業的進程組 leader 的進程ID。
               -n     åªé¡¯ç¤ºå¾žä¸Šæ¬¡ä½¿ç”¨è€…得知它-
                      æ€æ¼¯ç‰¯A之後,狀態發生改變的作業的信æ¯ã€‚
               -r     制åªè¼¸å‡ºæ­£åœ¨é‹è¡Œçš„作業。
               -s     制åªè¼¸å‡ºåœæ­¢çš„作業。
 
               如果給出了      jobspec      輸出被制為僅此作業的信æ¯ã€‚     返回
               0,除éžé‡åˆ°äº†éžæ³•çš„é¸é …æˆ–çµ¦å‡ºäº†éžæ³•çš„ jobspec  C
 
               如果給出了 -x é¸é …,作業 jobs å°‡ command 或 args  中的任何  job-
               spec    替æ›ç‚ºç›¸æ‡‰çš„進程組ID,執行   command  A   傳éžåƒæ•¸   args
               給它並返回它的退出狀態。
 
        kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
        kill -l [sigspec | exit_status]
               å‘以  pid  或  jobspec  為å的進程發é€å為  sigspec  或   signum
               的信號。  sigspec  å¯ä»¥æ˜¯ä¸€èŒ·H號å稱,類似  SIGKILL 或信號編號;
               signum         是一茷H號編號。如果         sigspec         是一-
               茷H號å稱,那麼å¯ä»¥æœ‰ï¼Œä¹Ÿå¯ä»¥æ²’有     SIG     å‰ç¶´ã€‚如果沒有給出
               sigspec  A       那麼å‡è¨­æ˜¯       SIGTER  C        åƒæ•¸        -l
               將列出所有信號的å稱。如果給出                                -l
               æ™‚é‚„æœ‰ä»»ä½•åƒæ•¸ï¼Œå°‡åˆ—å‡ºåƒæ•¸å°æ‡‰çš„信號å稱,返回狀態  0。  -l   çš„
               exit_status             åƒæ•¸æ˜¯ä¸€èšïš¶r,指定了一茷H號編號或被信號
               終止的進程的退出狀態C    kill    返回真,如果至少æˆåŠŸç™¼é€äº†ä¸€-
               茷H號,或者返回å‡ï¼Œå¦‚果發生了錯誤或é‡åˆ°äº† éžæ³•çš„é¸é …。
 
        let arg [arg ...]
               æ¯  arg  都是n求犖滼N表é”å¼ (åƒè¦‹        D(ARITHMETIC EVALUA-
               TION)  章節)ã€‚å¦‚æžœæœ€å¾Œä¸€èŒæŠ  arg  求痕G是   0,   let   返回
               1ï¼›å¦å‰‡è¿”回 0。
 
        local [option] [name[=value] ...]
               å°æ¯èŒæŠï›N創建一茼W為  name  的局部變é‡ä¸¦è³¦äºˆ  value  C  option
               å¯ä»¥æ˜¯ä»»ä½• declare 接å—的Cç•¶ local  用於函數內部時,它使得變é‡
               name       作用域局於函數和它的å­é€²ç¨‹ã€‚沒有æ“作數時,      local
               將局部變é‡çš„列表寫到標準輸出。ä¸åœ¨å‡½æ•¸å…§éƒ¨ä½¿ç”¨    local    會導-
               P出錯。返回  0,除éžåœ¨å‡½æ•¸ä¹‹å¤–使用了 loca  A çµ¦å‡ºäº†éžæ³•çš„ name  A
               或者 name 是一茈u讀的變é‡ã€‚
 
        logout 退出登入 shell。
 
        popd [-n] [+n] [-n]
               從目錄棧中刪除æ¢ç›®ã€‚æ²’æœ‰åƒæ•¸çš„話,從棧中刪除頂層目錄,執行    cd
               切æ›åˆ°æ–°çš„é ‚å±¤ç›®éŒ„ã€‚å¦‚æžœçµ¦å‡ºäº†åƒæ•¸ï¼Œæœ‰ä¸‹åˆ—çš„å«ç¾©ï¼š
               +n     刪除    dirs   給出的列表中從左數第   n   è“囓   (從   0
                      算起)。例如: ``popd  +0''  刪除第一茈媬,  ``popd  +1''
                      第二è‚C
               -n     刪除    dirs   çµ¦å‡ºçš„åˆ—è¡¨ä¸­å¾žå³æ•¸ç¬¬   n   è“囓   (從   0
                      算起)。例如: ``popd -0'' 刪除最後一茈媬,  ``popd  -1''
                      刪除佷臚Gè‚C
               -n     阻止從棧中刪除目錄之後改變目錄,這時åªå°æ£§é€²è¡Œæ“作。
 
               如果命令    popd   æˆåŠŸï¼Œé‚„n執行一   dir  A   返回   0。   popd
               返回å‡ï¼Œå¦‚æžœé‡åˆ°äº†éžæ³•çš„é¸é …,目錄棧為空,指定了目錄棧中ä¸å­˜åœ¨çš„æ¢ç›®ï¼Œ
               或者改變目錄失敗。
 
        printf format [arguments]
               在 format 控制下將格å¼åŒ–çš„ arguments 寫到標準輸出。 format 是一-
               茼r符串,包å«ä¸‰ç¨®é¡žåž‹çš„å°è±¡ï¼šæ™®é€šå­—符,被簡單地
               複製到標準輸出,轉義字符,被轉æ›ä¸¦è¤‡è£½åˆ°æ¨™æº–輸出,格å¼èªªæ˜Žï¼Œæ¯ä¸€-
                都使得相鄰的下一  argument  被列å°å‡ºä¾†ã€‚  在標準的  printf(1)
               æ ¼å¼ä¹‹å¤–,%b       使得      printf      展開相應      arguments
               ä¸­çš„åæ–œæ§“轉義åºåˆ—,%q   使得   printf   å°‡   相應的    argument
               以一種å¯ä»¥å’±å³Ž shell 輸入的格å¼è¼¸å‡ºã€‚
 
               format  在需n時被咱峞Aä»¥è™•ç†æ‰€æœ‰çš„  arguments。  如果 format 需-
               n比所æä¾›çš„æ›´å¤šçš„ arguments, 多出的格å¼èªªæ˜Žè¦–為已經æä¾›äº†ç›¸æ‡‰çš„
               0 峈臟r符串。 æˆåŠŸçš„è©±è¿”å›žïŸ¶O 0ï¼Œå¤±æ•—å‰‡æ˜¯éž 0 C
 
        pushd [-n] [dir]
        pushd [-n] [+n] [-n]
               å°‡ç›®éŒ„æŽ¨å…¥ç›®éŒ„æ£§ï¼Œæˆ–è€…è¼ªæ›æ£§ä¸­çš„內容,使棧的頂部æˆç‚ºç•¶å‰å·¥ä½œç›®éŒ„。
               æ²’æœ‰åƒæ•¸æ™‚,交æ›é ‚部兩茈媬,返回
               0,除éžç›®éŒ„æ£§ç‚ºç©ºã€‚å¦‚æžœçµ¦å‡ºäº†åƒæ•¸ï¼Œ 它怞釵p下å«ç¾©ï¼š
               +n     è¼ªæ›æ£§ä¸­å…§å®¹ï¼Œä½¿å¾—  dirs 給出的列表中從左數第 n 茈媬 (從
                      0 數起) æˆç‚ºç›®éŒ„棧的頂部。
               -n     è¼ªæ›æ£§ä¸­å…§å®¹ï¼Œä½¿å¾— dirs çµ¦å‡ºçš„åˆ—è¡¨ä¸­å¾žå³æ•¸ç¬¬ n 茈媬  (從
                      0 數起) æˆç‚ºç›®éŒ„棧的頂部。
               -n     é˜»æ­¢å‘æ£§ä¸­æ·»åŠ ç›®éŒ„ä¹‹å¾Œæ”¹è®Šç›®éŒ„ï¼Œé€™æ™‚åªå°æ£§é€²è¡Œæ“作。
               dir    添加 dir 到棧頂,使得它æˆç‚ºæ–°çš„ç•¶å‰å·¥ä½œç›®éŒ„。
 
               如果命令   pushd  æˆåŠŸï¼Œé‚„n執行一  dir  C  如果使用第一種形å¼ï¼Œ
               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  é¸é …çš„åƒæ•¸ä¸­çµ¦å‡ºçš„æª”案æz符  fd  中
               讀å–,第一茧被賦予第一    name,    第二茧被賦予第二    name,
               以此類推,多餘的詞和其間的分隔符被賦予最後一              name.
               如果從輸入æµè®€å…¥çš„詞數比å稱數少,剩餘的å稱被賦予空C      IFS
               中的字符被用來將行拆分æˆè©žã€‚           åæ–œæ§“字符            (\)
               被用於刪除讀å–的下一字符的特殊å«ç¾©ï¼Œä»¥åŠçºŒè¡Œã€‚
               如果給出了é¸é …,將包å«ä¸‹åˆ—å«ç¾©ï¼š
               -a aname
                      è©žè¢«è³¦ä»¥æ•¸çµ„è®Šé‡ aname 的連續的下標,從  0  開始。在賦新-
                      妨e, aname è¢«å–æ¶ˆå®šç¾©ã€‚å…¶ä»– name åƒæ•¸è¢«å¿½ç•¥ã€‚
               -d delim
                      delim 的第一茼rç¬¦è¢«ç”¨æ–¼çµæŸè¼¸å…¥è¡Œï¼Œè€Œä¸æ˜¯æ–°è¡Œç¬¦ã€‚
               -e     如果標準輸入來自終端,將使用 readline (åƒè¦‹ä¸Šæ‚¸ READLINE
                      章節) 來ç²å¾—輸入行。
               -n nchars
                      read 讀入 nchars 茼rç¬¦å¾Œè¿”å›žï¼Œè€Œä¸æ˜¯ç­‰å¾…一整行輸入。
               -p prompt
                      讀å–任何輸入之å‰ï¼Œåœ¨æ¨™æº–錯誤顯示æç¤º
                      prompt,末尾沒有新行符。
                      æç¤ºåªæœ‰åœ¨è¼¸å…¥ä¾†è‡ªçµ‚ç«¯æ™‚æ‰æœƒé¡¯ç¤ºã€‚
               -r     åæ–œæ§“ä¸ä½œç‚ºè½‰ç¾©å­—ç¬¦ã€‚åæ–œæ§“被èªç‚ºè¡Œçš„一部分。特殊地,一å°å斜槓-新行符ä¸ä½œç‚ºçºŒè¡Œã€‚
               -s     å®‰éœæ¨¡å¼ã€‚å¦‚æžœè¼¸å…¥ä¾†è‡ªçµ‚ç«¯ï¼Œå­—ç¬¦å°‡ä¸æœƒå›žé¡¯ã€‚
               -t timeout
                      使得       read       超時並返回失敗,如果在      timeout
                      秒內沒有讀入完整的一行輸入。          如果           read
                      䏿˜¯å¾žçµ‚端或管é“讀å–輸入,那麼這蚇龠紫L效。
               -u fd  從檔案æz符 fd 中讀å–輸入。
 
               如果沒有給出   names  A   讀å–çš„ä¸€è¡Œå°‡è³¦äºˆè®Šé‡   REPLY。  返回O
               0,除éžé‡åˆ°äº†  EOF,readP                                       y          -u
                            C
 
        readonly [-apf] [name ...]
               給出的    name   將被標記為åªè®€çš„ï¼›   names   的ㄞ鈳Q後來的賦-
               ï …y奿”¹è®Šã€‚如果給出了 -f é¸é …,names å°æ‡‰çš„函數也被標記。é¸é … -a
               制變é‡åªèƒ½æ˜¯æ•¸çµ„類型。如果沒有給出  name åƒæ•¸ï¼Œæˆ–者如果給出了 -p
               é¸é …ï¼Œå°‡åˆ—å°æ‰€æœ‰åªè®€çš„å稱。é¸é …    -p     使得輸出以一種å¯ä»¥è¢«-
               å¥s用作輸入的格å¼é¡¯ç¤ºã€‚  返回O 0,除éžé‡åˆ°äº†éžæ³•çš„é¸é …, names
               之䏀䏿˜¯æœ‰æ•ˆçš„ shell 變é‡å,或é¸é …  -f  中給出的  name  䏿˜¯ä¸€-
               茖è»ïš±C
 
        return [n]
               使得一茖è»ïšµH指定         n         退出。如果忽略了        n  A
               返回狀態是函數體中執行的最後一-
               茤R令的退出狀態。如果在函數外使用,但是是在一茈H   .    (source)
               命令執行的稿本內,它使得     shell     中止執行稿本,返回      n
               或稿本中執行的最後一-
               茤Rä»¤çš„é€€å‡ºç‹€æ…‹ã€‚å¦‚æžœåœ¨å‡½æ•¸å¤–ä½¿ç”¨ï¼Œä¸¦ä¸”ä¸æ˜¯åœ¨ä»¥                .
               執行的稿本內,返回狀態是å‡ã€‚
 
        set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
               ä¸å¸¶é¸é …時,shell 變é‡çš„å稱和N以一種å¯ä»¥å’±å³Žå€æ“—J的格å¼é¡¯ç¤ºã€‚
               輸出根據當å‰èªžè¨€ç’°å¢ƒé€²è¡ŒæŽ’åºã€‚指定了é¸é …的時唌A它抭]ç½®æˆ–å–æ¶ˆäº†
               shell  的屬性。  處ç†å®Œé¸é …ä¹‹å¾Œå‰©é¤˜çš„ä»»ä½•åƒæ•¸éƒ½è¢«ä½œç‚ºä½ç½®åƒæ•¸çš„-
               Q賦A分別賦予        $1,         $2,         ...          $n.
               如果給出了é¸é …,那麼具有以下å«ç¾©ï¼š
               -a      自動將被-
                       蚹鴭帠衎堛ç˜åƒ†q和函數標誌為導出至後續命令的環境中。
               -b      Iæ™¯ä½œæ¥­çµæŸæ™‚ç«‹å³å ±å‘Šç‹€æ…‹ï¼Œè€Œä¸æ˜¯åœ¨ä¸‹æ¬¡é¡¯ç¤ºä¸»æç¤ºç¬¦å‰å ±å‘Šã€‚åªæœ‰åœ¨å•Ÿç”¨ä½œæ¥­æŽ§åˆ¶æ™‚æ‰æœ‰æ•ˆã€‚
               -e      ç«‹å³é€€å‡ºï¼Œå¦‚æžœ simple command (簡單命令,åƒè¦‹ä¸Šæ‚¸ SHELL
                       GRAMMAR                k)             以éžé›¶ïŸºh出。shell
                       䏿œƒé€€å‡ºï¼Œå¦‚果失敗的命令是 until 或 while 循環的一部分,
                       if 語å¥çš„一部分, && 或 || åºåˆ—的一部分,或者命令的返回-
                       Oç”±  !   翻轉得到。é‡å° ERR 的陷阱,如果設置的話,將在
                       shell 退出å‰åŸ·è¡Œã€‚
               -f      ç¦æ­¢è·¯å¾‘擴展。
               -h      在查找並執行命令時,記ä½å®ƒæ€æ¼²é¼½m。這是é è¨­å•Ÿç”¨çš„。
               -k      所有以賦-
                       ï …yå¥å½¢å¼å‡ºç¾çš„åƒæ•¸éƒ½è¢«åŠ å…¥åˆ°å‘½ä»¤åŸ·è¡Œçš„ç’°å¢ƒä¸­ï¼Œä¸åƒ…是命令åå‰-
                       惆漕ïŽC
               -m      監視模å¼ã€‚作業控制被啟用。在支æŒé€™-
                       蚇龠答漕t統中,它在交互  shell 中是é è¨­å•Ÿç”¨çš„ (åƒè¦‹ä¸Šæ‚¸
                       JOB                 CONTROL                             C
                       I景進程在單ç¨çš„進程組中é‹è¡Œï¼ŒçµæŸæ™‚將列å°å‡ºåŒ…å«å®ƒ-
                       怜h出狀態的一行信æ¯ã€‚
               -n      讀å–命令,但ä¸åŸ·è¡Œã€‚這å¯ä»¥ç”¨åœ¨æª¢æŸ¥                 shell
                       稿本中的語法錯誤。交互 shell 中它被忽略。
               -o option-name
                       option-name å¯ä»¥æ˜¯å¦‚下之一:
                       allexport
                               與 -a 相åŒã€‚
                       braceexpand
                               與 -B 相åŒã€‚
                       emacs   使用   emacs  樣å¼çš„命令行編輯界情C這蚇龠策b交互
                               shell  中é è¨­å•Ÿç”¨ï¼Œé™¤éž  shell  以   --noediting
                               é¸é …啟動。
                       errexit 與 -e 相åŒã€‚
                       hashall 與 -h 相åŒã€‚
                       histexpand
                               與 -H 相åŒã€‚
                       history å…許記錄命令歷å²ï¼Œå¦‚上z   HISTORY   中的æz。這-
                               蚇龠策b交互 shell 中é è¨­å•Ÿç”¨ã€‚
                       ignoreeof
                               它的效果是好åƒå·²ç¶“執行了       shell        命令
                               ``IGNOREEOF=10'' 一樣 (åƒè¦‹ä¸Šæ‚¸ Shell Variables
                                    q  C
                       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 樣å¼çš„命令行編輯界情C
                       xtrace  與 -x 相åŒã€‚
                       如果給出了ä¸å¸¶   option-name   çš„  -o  é¸é …,當å‰é¸é …çš„-
                       N被列å°å‡ºä¾†ã€‚如果給出了ä¸å¸¶    option-name    çš„    +o
                       é¸é …,將在標準輸出顯示一系列å¯ä»¥åž‚媟礅eé¸é …設定的    set
                       命令。
               -p      打開 privileged mode (  S  v        )  C  在這èšç‹¾ï¹žä¸‘A䏿œƒè™•ç†
                       $ENV          和          $BASH_ENV          檔案,shell
                       å‡½æ•¸ä¸æœƒå¾žç’°å¢ƒä¸­ç¹¼æ‰¿ï¼Œç’°å¢ƒä¸­å¦‚æžœæœ‰è®Šé‡       SHELLOPT  A
                       也將被忽略。如果    shell    啟動時的有效使用者(組)   ID
                       與真實使用者(組)   ID   ä¸åŒï¼Œä¸¦ä¸”沒有給出   -p   é¸é …,
                       將執行這些æ“作,有效使用者     ID     將設置為真實使用者
                       ID。如果啟動是給出了 -p  é¸é …,有效使用者  ID  䏿œƒ  被-
                       姜m。將這蚇龠腕鶶洧炱o有效使用者和組                  ID
                       被設置為真實使用者和組 ID。
               -t      讀å–並執行一茤R令之後退出。
               -u      åœ¨é€²è¡Œåƒæ•¸æ“´å±•時,將未定義的變é‡ä½œç‚ºéŒ¯èª¤ã€‚如果試圖擴展未定義的變é‡ï¼Œshell
                       將輸出一æ¢éŒ¯èª¤æ¶ˆæ¯;      如果是éžäº¤äº’çš„     shell,shell
                       將以éžé›¶ïŸºh出。
               -v      在讀å–è¼¸å…¥çš„åŒæ™‚列å°å‡ºä¾†ã€‚
               -x      擴展æ¯èš‹çœ¾ç’ˆR令之後,顯示            PS4             çš„-
                       AæŽ¥è‘—é¡¯ç¤ºå‘½ä»¤å’Œå®ƒæ“´å±•å¾Œçš„åƒæ•¸ã€‚
               -B      shell   執行花括號擴展   (åƒè¦‹ä¸Šæ‚¸  Brace  Expansion  C
                       這是é è¨­å…許的。
               -C      如果設置的話,  bash  使用咿w呿“作符  >,  >&,   å’Œ   <>
                       æ™‚ï¼Œä¸æœƒè¦†è“‹å·²å­˜åœ¨çš„æª”案。å¯ä»¥ä½¿ç”¨å’¿w呿“作符  >| 代替 >
                       來創建輸出檔案,從而繞éŽé€™èŒ–謘C
               -H      å…許  Enable  !   樣å¼çš„æ­·å²æ›¿æ›ã€‚在交互   shell   中這-
                       蚇龠筋Oé è¨­å•Ÿç”¨çš„。
               -P      如果設置的話,shell             在執行類似            cd
                       的,改變當å‰å·¥ä½œç›®éŒ„çš„å‘½ä»¤æ™‚ï¼Œä¸æœƒè·Ÿéš¨ç¬¦è™Ÿé€£æŽ¥ã€‚它將使用物ç†çš„ç›®éŒ„çµæ§‹ä¾†ä»£æ›¿ã€‚é è¨­æƒ…æ³ä¸‹ï¼Œ
                       bash 在執行改變當å‰ç›®éŒ„的命令時跟隨路徑的é‚輯éˆã€‚
               --      如果這-
                       蚇龠ç­Sæœ‰åƒæ•¸ï¼Œå°‡å–消ä½ç½®åƒæ•¸çš„定義。å¦å‰‡ï¼Œä½ç½®åƒæ•¸å°‡è¨­ç½®ç‚º
                       arg,å³ä½¿å®ƒæ€šH - 開始。
               -       é€šçŸ¥ä¿¡è™Ÿçš„çµæŸï¼Œä½¿å¾—所有剩餘的  arg  被賦予ä½ç½®åƒæ•¸ã€‚ -x
                       å’Œ -v é¸é …被關閉。如果沒有 arg,ä½ç½®åƒæ•¸å°‡ä¸æœƒæ”¹è®Šã€‚
 
               這蚇龠給w設是關閉的,除éžå¦å¤–說明。使用     +      è€Œä¸æ˜¯      -
               使得這些é¸é …被關閉。é¸é …都å¯ä»¥ä½œç‚ºåƒæ•¸ï¼Œ         在        shell
               啟動時指定。當å‰çš„é¸é …集åˆå¯ä»¥å¾ž         $-          找到。返回-
               ï ‹`是真,除éžé‡åˆ°äº†éžæ³•çš„é¸é …。
 
        shift [n]
               從  n+1  ...  é–‹å§‹çš„é¸é …被咿Rå為 $1 ....  從 $# å‘下直到 $#-n+1
               çš„é¸é …è¢«å–æ¶ˆå®šç¾©ã€‚ n  必須是éžtæ•´æ•¸ï¼Œå°æ–¼æˆ–等於  $#。如果  n  是
               0ï¼Œä¸æœƒæ”¹è®Šåƒæ•¸ã€‚如果沒有給出  n  A  å°±å‡å®šå®ƒæ˜¯  1。如果  n 比 $#
               大,ä½ç½®åƒæ•¸ä¸æœƒæ”¹è®Šã€‚返回jæ–¼  0,如果  n   比   $#   å¤§æˆ–å°æ–¼
               0ï¼›å¦å‰‡è¿”回 0。
 
        shopt [-pqsu] [-o] [optname ...]
               å°æ–¼æŽ§åˆ¶å¯é¸çš„  shell  行為的變é‡ï¼Œæ”¹è®Šå®ƒæ€ç˜“。沒有é¸é …或者有 -p
               é¸é …時,將顯示所有å¯è¨­ç½®çš„é¸é …列表,以åŠå®ƒæ€“Oå¦å·²ç¶“設置的指示。
               -p                     使得輸出以一種å¯ä»¥è¢«å’±å³Žå€æ“—J的形å¼é¡¯ç¤ºã€‚
               å…¶ä»–é¸é …有如下å«ç¾©ï¼š
               -s     å…許(設置) æ¯ optname。
               -u     ç¦æ­¢(å–æ¶ˆ) æ¯ optname。
               -q     ç¦æ­¢é€šå¸¸çš„輸出     (å®‰éœæ¨¡å¼);返回狀態指示了     optname
                      是å¦è¢«è¨­ç½®ã€‚  å¦‚æžœå°  -q 給出了多 optname åƒæ•¸ï¼Œå¦‚果所有
                      optname 都被å…許,返回N是 0ï¼› å¦å‰‡è¿”回éžé›¶ïŸ«C
               -o     制 optname 的陘澈堜R令 set çš„ -o é¸é …定義的C
 
               如果使用  -s  或   -u   時沒有給出   optname   åƒæ•¸ï¼Œé¡¯ç¤ºå°‡åˆ†åˆ¥-
               æ–¼è¢«è¨­ç½®æˆ–è¢«å–æ¶ˆçš„é¸é …。                     除éžå¦å¤–說明,shopt
               é¸é …é è¨­è¢«ç¦æ­¢(å–æ¶ˆ)。
 
               返回b列出é¸é …時是             0,如果所有              optname
               都被å…許的話,å¦å‰‡æ˜¯éžé›¶ïŸ«C  ç•¶è¨­ç½®æˆ–å–æ¶ˆé¸é …時,返回O 0,除éž
               optname æ˜¯éžæ³•çš„ shell é¸é …。
 
               shopt é¸é …的列表是:
 
               cdable_vars
                       如果設置的話,內建命令                                cd
                       çš„åƒæ•¸å¦‚æžœä¸æ˜¯ç›®éŒ„,就å‡å®šæ˜¯ä¸€èš¥åƒ†q,它的O-
                       n切æ›åˆ°çš„目錄å。
               cdspell 如果設置的話,                                        cd
                       命令中目錄的細微拼寫錯誤能夠得以糾正。檢查的錯誤包括字符錯ä½ï¼Œç¼ºå­—符,
                       契_輸入åŒä¸€å­—符。如果找到了正確的-
                       Aå°‡åˆ—å°æ­£ç¢ºçš„æª”å,命令將繼續。      這蚇龠等u能在交互
                       shell 中使用。
               checkhash
                       如果設置的話,bash
                       åœ¨åŸ·è¡Œå‘½ä»¤å‰æª¢æ¸¬æ•£åˆ—表中的命令是å¦å­˜åœ¨ã€‚         如果一-
                       茬Q散列的命令ä¸å†å­˜åœ¨ï¼Œå°‡é€²è¡Œæ­£å¸¸çš„路徑æœç´¢ã€‚
               checkwinsize
                       如果設置的話,bash åœ¨æ¯æ¢å‘½ä»¤åŸ·è¡Œå¾Œæª¢æ¸¬è¦–窗大å°ï¼Œå¦‚果需-
                       n的話就更新 LINES 和 COLUMNS 的C
               cmdhist 如果設置的話,  bash  試著將一茼h行命令的所有行放到åŒä¸€-
                       èšžå²æ¢ç›®ä¸­ã€‚這樣使得 多行命令å¯ä»¥å®¹æ˜“地å¥s蚹鵅C
               dotglob 如果設置的話,         bash          會把以          `.'
                       開始的檔å包å«åœ¨è·¯å¾‘åæ“´å±•çš„çµæžœä¸­ã€‚
               execfail
                       如果設置的話,éžäº¤äº’çš„                             shell
                       如果ä¸èƒ½åŸ·è¡Œä½œç‚ºåƒæ•¸æä¾›çµ¦å…§å»ºå‘½ä»¤                  exec
                       çš„æª”æ¡ˆæ™‚å°‡ä¸æœƒé€€å‡ºã€‚交互的       shell      在      exec
                       å¤±æ•—æ™‚ä¸æœƒé€€å‡ºã€‚
               expand_aliases
                       如果設置的話,別å被擴展,就åƒä¸Š                ALIASES
                       中講到的一樣。這蚇龠策b交互 shell 中是é è¨­å•Ÿç”¨çš„。
               extglob 如果設置的話,將å…許上        Pathname        Expansion
                       中æåˆ°çš„æ“´å±•模å¼åŒ¹é…特性。
               histappend
                       如果設置的話,在 shell 退出時,歷å²åˆ—表將追加到以  HIST-
                       FILE 的隻Wçš„æª”æ¡ˆä¹‹å¾Œï¼Œè€Œä¸æ˜¯è¦†è“‹æª”案。
               histreedit
                       如果設置的話,並且正在使用   readlin  A   使用者å¯ä»¥å¥s-
                       èš¹é´·ï¼’æ‚›ç‘£å²æ›¿æ›ã€‚
               histverify
                       如果設置的話,並且正在使用                    readlin  A
                       æ­·å²æ›¿æ›çš„çµæžœä¸æœƒç«‹å³å‚³çµ¦  shell è§£é‡‹å™¨ã€‚çµæžœè¡Œè¢«åŠ è¼‰åˆ°
                       readline 編輯緩沖å€ï¼Œå…許進行進一步的蚹鵅C
               hostcomplete
                       如果設置的話,並且正在使用        readlin  A        bash
                       å°‡è©¦è‘—å°æ­£åœ¨é€²è¡Œè£œå…¨çš„åŒ…å«   的詞進行主機å補全 (åƒè¦‹ä¸Š-
                       悸 READLINE 中的 Completing 段è½)。這是é è¨­å…許的。
               huponexit
                       如果設置的話,在交互的登入     shell     退出時     bash
                       將呿‰€æœ‰ä½œæ¥­ç™¼å‡º SIGHUP 信號。
               interactive_comments
                       如果設置的話,將å…許在交互      shell     中é‡åˆ°ä»¥     #
                       開頭的詞時忽略這茧和一行中所有剩餘的字符     (åƒè¦‹ä¸Šæ‚¸
                       COMMENTS      C 這蚇龠筋Oé è¨­å…許的。
               lithist 如果設置的話,並且å…許了                         cmdhist
                       é¸é …,多行的命令在ä¿å­˜åˆ°æ­·å²ä¸­æ™‚å°‡åŒ…å«æ–°è¡Œç¬¦ï¼Œè€Œä¸æ˜¯åœ¨å¯èƒ½çš„地方使用分號。
               login_shell
                       如果 shell 作為登入 shell 啟動,將設置這蚇龠 (åƒè¦‹ä¸Šæ‚¸
                            (INVOCATION)   C 這蚧ä¸å¯èš¹éµ…C
               mailwarn
                       如果設置的話,並且                                  bash
                       正在檢測上次檢測以來被存å–éŽçš„郵件,  將顯示  ``The mail
                       in mailfile has been read''(mailfile 中的郵件已被讀å–)。
               no_empty_cmd_completion
                       如果設置的話,並且正在使用                    readlin  A
                       試圖在空行上執行補全時,     bash     䏿œƒæœç´¢      PATH
                       來查找å¯èƒ½çš„補全。
               nocaseglob
                       如果設置的話,                                      bash
                       進行路徑擴展時使用大å°å¯«ä¸æ•感方å¼åŒ¹é…檔å(åƒè¦‹ä¸Šæ‚¸
                       Pathname Expansion          i  C
               nullglob
                       如果設置的話,                                      bash
                       å°‡å…許ä¸åŒ¹é…ä»»ä½•æª”æ¡ˆçš„æ¨¡å¼æ“´å±•ç‚ºç©ºå­—ç¬¦ä¸²è€Œä¸æ˜¯å®ƒæ€žè¬-
                       (åƒè¦‹ä¸Šæ‚¸ Pathname Expansion          i  C
               progcomp
                       如果設置的話,將啟用å¯ç·¨ç¨‹è£œå…¨åŠŸèƒ½    (åƒè¦‹ä¸Šæ‚¸    Pro-
                       grammable Completion)。 這蚇龠筋Oé è¨­å•Ÿç”¨çš„。
               promptvars
                       如果設置的話,æç¤ºå­—符串nç¶“éŽä¸Š     PROMPTING     中æ-
                       z的擴展,然後還nç¶“éŽè®Šé‡å’Œåƒæ•¸æ“´å±•。這-
                       蚇龠筋Oé è¨­å•Ÿç”¨çš„。
               restricted_shell
                       shell 設置這蚇龠窗Aå¦‚æžœå®ƒæ˜¯ä»¥å—æ¨¡å¼å•Ÿç”¨çš„ (åƒè¦‹ä¸‹æ‚¸  -
                          shell(RESTRICTED        SHELL)        章節)。這蚧ä¸èƒ½-
                       蚹鵅Cåœ¨åŸ·è¡Œå•Ÿå‹•æª”æ¡ˆæ™‚ï¼Œå®ƒä¸æœƒè¢«å§œm,使得啟動檔案å¯ä»¥
                       得知 shell æ˜¯å¦æ˜¯å—的。
               shift_verbose
                       如果設置的話,內建命令   shift   在åç§»é‡è¶…éŽä½ç½®åƒæ•¸çš„-
                       èšïš¾çаCå°ä¸€æ¢éŒ¯èª¤æ¶ˆæ¯ã€‚
               sourcepath
                       如果設置的話,內建命令  source  (.)  使用   PATH   中的-
                       茯d找包å«ä½œç‚ºåƒæ•¸çµ¦å‡ºçš„æª”案。這蚇龠給w設是啟用的。
               xpg_echo
                       如果設置的話,內建命令 echo é è¨­æ“´å±•åæ–œæ§“轉義åºåˆ—。
        suspend [-f]
               掛起    shell    的執行,直到收到一   SIGCONT   信號。é¸é …   -f
               表示如果這是一茧nå…¥        shell,那麼ä¸næç¤ºï¼Œç›´æŽ¥æŽ›èµ·ã€‚返回O
               0ï¼Œé™¤éž     shell     是登入     shell     並且沒有指定     -  A
               或者沒有啟用作業控制。
        test expr
        [ expr ]
               返回狀態   0   或   1,根據æ¢ä»¶è¡¨é”å¼    expr    的求茤w。æ¯-
               蚞犑@符和æ“作數都必須是一茬瞈Wçš„åƒæ•¸ã€‚表é”å¼ä½¿ç”¨ä¸Š                   
               (CONDITIONAL EXPRESSIONS) 中的æ“作構造。
 
               表é”å¼å¯ä»¥ç”¨ä¸‹åˆ—æ“作符çµåˆï¼Œä»¥å„ªå…ˆç´šçš„飢ï“C出。
               ! expr åºu,如果 expr 為å‡ã€‚
               ( expr )
                      返回 expr 的C括號å¯ä»¥ç”¨ä¾†è¶…è¶Šæ“作符的一般優先級。
               expr1 -a expr2
                      åºu,如果 expr1 å’Œ expr2 都為真。
               expr1 -o expr2
                      åºu,如果 expr1 或 expr2 為真。
 
               test å’Œ [ ä½¿ç”¨åŸºæ–¼åƒæ•¸èšïšºæ¼±@系列è¦å‰‡ï¼Œå°æ¢ä»¶è¡¨é”å¼é€²è¡Œæ±‚C
 
               0 arguments
                      表é”å¼ç‚ºå‡ã€‚
               1 argument
                      表é”å¼ç‚ºçœŸï¼Œç•¶ä¸”åƒ…ç•¶åƒæ•¸éžç©ºã€‚
               2 arguments
                      å¦‚æžœç¬¬ä¸€èŒæŠïš¼O    !,表é”å¼ç‚ºçœŸï¼Œç•¶ä¸”åƒ…ç•¶ç¬¬äºŒèŒæŠïš¼é«˜ç¦³C
                      å¦‚æžœç¬¬ä¸€èŒæŠïš¼O上                   (CONDITIONAL EXPRESSIONS)
                      中列出的單目æ¢ä»¶é‹ç®—符之一,表é”å¼ç‚ºçœŸï¼Œç•¶ä¸”僅當單目測試為真。
                      å¦‚æžœç¬¬ä¸€èŒæŠïš´ã„›Oåˆæ³•的單目æ¢ä»¶é‹ç®—符,表é”å¼ç‚ºå‡ã€‚
               3 arguments
                      å¦‚æžœç¬¬äºŒèŒæŠïš¼O上                   (CONDITIONAL EXPRESSIONS)
                      中列出的二進制æ¢ä»¶æ“作符之一,表é”å¼çš„çµæžœæ˜¯ä½¿ç”¨ç¬¬ä¸€å’Œç¬¬ä¸‰-
                      èŒæŠïš·@為æ“ä½œæ•¸çš„äºŒé€²åˆ¶æ¸¬è©¦çš„çµæžœã€‚       å¦‚æžœç¬¬ä¸€èŒæŠïš¼O
                      !,表é”å¼ïŸ¶Oä½¿ç”¨ç¬¬äºŒå’Œç¬¬ä¸‰èŒæŠï›†iè¡Œé›™åƒæ•¸æ¸¬è©¦çš„çµæžœå–å。
                      å¦‚æžœç¬¬ä¸€èŒæŠïš¼O      (ï¼Œç¬¬ä¸‰èŒæŠïš¼O      )ï¼Œçµæžœæ˜¯å°ç¬¬äºŒ-
                      èŒæŠï›†iè¡Œå–®åƒæ•¸æ¸¬è©¦çš„çµæžœã€‚  å¦å‰‡ï¼Œè¡¨é”å¼ç‚ºå‡ã€‚這種情æ³ä¸‹
                      -a å’Œ -o æ“作符被èªç‚ºäºŒé€²åˆ¶æ“作符。
               4 arguments
                      å¦‚æžœç¬¬ä¸€èŒæŠïš¼O
                      !ï¼Œçµæžœæ˜¯ç”±å‰©é¤˜åƒæ•¸çµ„æˆçš„ä¸‰åƒæ•¸è¡¨é”å¼çµæžœå–å。
                      å¦å‰‡ï¼Œè¡¨é”å¼è¢«æ ¹æ“šä¸Šæƒ˜C出的優先級è¦å‰‡è§£é‡‹ä¸¦åŸ·è¡Œã€‚
               5 或更多 arguments
                      表é”å¼è¢«æ ¹æ“šä¸Šæƒ˜C出的優先級è¦å‰‡è§£é‡‹ä¸¦åŸ·è¡Œã€‚
 
        times  å°   shell  ä»¥åŠ  shell  é‹è¡Œçš„進程,列å°ç´¯p的使用者和系統時間。
               返回狀態是 0。
 
        trap [-lp] [arg] [sigspec ...]
               當      shell      收到信號      sigspec      時,命令       arg
               將被讀å–並執行。如果沒有給出       arg      或者給出的是      -,
               æ‰€æœ‰æŒ‡å®šçš„ä¿¡è™Ÿè¢«è¨­ç½®ç‚ºå®ƒæ€æ¼¯é´l (進入 shell 時它æ€ç˜“)。如果 arg
               是空字符串, sigspec 指定的信號被 shell 和它啟動的命令忽略。如果
               arg      ä¸å­˜åœ¨ï¼Œä¸¦ä¸”給出了      -p      é‚£éº¼èˆ‡æ¯       sigspec
               相關è¯çš„é™·é˜±å‘½ä»¤å°‡è¢«é¡¯ç¤ºå‡ºä¾†ã€‚å¦‚æžœæ²’æœ‰çµ¦å‡ºä»»ä½•åƒæ•¸ï¼Œæˆ–åªçµ¦å‡ºäº†
               -  A   trap   將列å°å‡ºèˆ‡æ¯èŒ·Hè™Ÿç·¨è™Ÿç›¸é—œçš„å‘½ä»¤åˆ—è¡¨ã€‚æ¯   sigspec
               å¯ä»¥æ˜¯  <signal.h>  定義的信號å,或是一茷H號編號。 如果 sigspec
               是 EXIT (0),命令 arg 將在  shell  退出時執行。如果  sigspec  是
               DEBUG, 命令 arg 將在æ¯èš‹çœ¾ç’ˆR令 (simple command,åƒè¦‹ä¸Šæ‚¸ SHELL
               GRAMMAR)   之後執行。如果   sigspec    是    ERR,    命令    arg
               將在任何命令以éžé›¶ïŸºh出時執行。如果失敗的命令是  until  或 while
               循環的一部分,     if     語å¥çš„一部分,      &&      或      ||
               åºåˆ—的一部分,或者命令的返回Oé€šéŽ     !      轉化而來,    ERR
               é™·é˜±å°‡ä¸æœƒåŸ·è¡Œã€‚é¸é … -l 使得 shell  列å°ä¿¡è™Ÿåå’Œå°æ‡‰ç·¨è™Ÿçš„列表。
               shell                                    忽略的信號ä¸èƒ½è¢«æ•æ‰æˆ–-
               å§œm。在å­é€²ç¨‹ä¸­ï¼Œè¢«æ•æ‰çš„信號在進程創建時被姜m為åˆå§‹ïŸ«C    返回-
               å½ç“·A如果 sigspec éžæ³•ï¼›å¦å‰‡ trap 返回真。
 
        type [-aftpP] name [name ...]
               沒有é¸é …æ™‚ï¼ŒæŒ‡ç¤ºæ¯        name        將如何被解釋,如果用作一-
               茤R令å。如果使用了      -t      é¸é …,       type       列å°ä¸€-
               茼r符串,內容是如下之一:  alias, keyword, function, builtin, 或
               file         A       如果        name        分別是一èOå,shell
               ä¿ç•™å­—,函數,內建命令或ç£ç¢Ÿæª”案。如果沒有找到            name  A
               é‚£éº¼ä¸æœƒåˆ—å°ä»»ä½•æ±è¥¿ï¼Œè¿”回退出狀態å‡ã€‚如果使用了 -p é¸é …,  type
               返回如果  name  作為命令å,將被執行的ç£ç¢Ÿæª”å;或者返回空,如果
               ``type -t name'' 䏿œƒè¿”回 file.  é¸é … -P é¸é …å¼·åˆ¶å°æ¯ name æœç´¢
               PAT  A  å³ä½¿ ``type -t name'' 䏿œƒè¿”回 file.  如果命令在散列中,
               -p   å’Œ   -P   å°‡åˆ—å°æ•£åˆ—的Aè€Œä¸æ˜¯    PATH    中漸出ç¾çš„那一-
               蚗仵蛂C如果使用了  -a  é¸é …, type åˆ—å°æ‰€æœ‰åŒ…å«å¯åŸ·è¡Œçš„å稱 name
               的場åˆã€‚çµæžœåŒ…括別åå’Œå‡½æ•¸ï¼Œç•¶ä¸”åƒ…ç•¶æ²’æœ‰åŒæ™‚使用  -p  é¸é …。使用
               -a      æ™‚ä¸æœƒæŸ¥æ‰¾æ•£åˆ—中的命令表。é¸é …     -f     阻止     shell
               進行查找,就åƒåœ¨å…§å»ºå‘½ä»¤       command       中一樣。       type
               è¿”å›žçœŸï¼Œå¦‚æžœæ‰¾åˆ°äº†ä»»ä½•åƒæ•¸ã€‚什麼都沒找到則返回å‡ã€‚
 
        ulimit [-SHacdflmnpstuv [limit]]
               在支æŒå®ƒçš„ç³»çµ±ä¸Šï¼Œå°                                       shell
               和它啟動的進程,æä¾›å°å¯ç”¨è³‡æºçš„æŽ§åˆ¶ã€‚    é¸é …    -H    å’Œ    -S
               指定為所給資æºè¨­å®šçš„硬性和柔性é¡ã€‚ 硬性é¡åœ¨è¨­ç½®å¾Œä¸èƒ½å¢žåŠ ï¼›æŸ”æ€§-
               é¡å¯ä»¥å¢žåŠ ï¼Œç›´åˆ°èˆ‡ç¡¬æ€§é¡ç›¸ç­‰ã€‚    如果沒有給出    -H    或    -S
               é¸é …ï¼Œå°‡åŒæ™‚設置硬性和柔性é¡ã€‚         limit        的i以是一-
               èšïš¶rï¼Œå–®ä½æ˜¯æŒ‡å®šè³‡æºçš„單元A或者是特殊 hard, soft, 或  unlim-
               ited  ä¹‹ä¸€ï¼Œæ„æ€åˆ†åˆ¥æ˜¯ç•¶å‰ç¡¬æ€§é¡ï¼Œç•¶å‰æŸ”性é¡å’Œæ²’有é¡ã€‚如果忽略了
               limit  A        將列å°å‡ºç•¶å‰å°è³‡æºçš„æŸ”性é¡ïŸ«A除éžçµ¦å‡ºäº†        -H
               é¸é …。當指定多於一                    è³‡æºæ™‚,é¡å稱和單ä½å°‡åœ¨-
               妨e列å°å‡ºä¾†ã€‚å…¶ä»–é¸é …按照如下æ„義解釋:
               -a     報告所有當å‰é¡
               -c     core 檔案的最大
               -d     進程數據段的最大
               -f     shell 創建的檔案的最大
               -l     記憶體中å¯ä»¥éŽ–å®šçš„æœ€å¤§
               -m     常é§è¨˜æ†¶é«”的最大
               -n     打開的檔案æzç¬¦æœ€å¤§èš (大多數系統ä¸å…許設置這蚧)
               -p     管é“大å°ï¼Œä»¥ 512 å­—ç¯€çš„å¡Šç‚ºå–®ä½ (這蚧å¯èƒ½ä¸èƒ½è¨­ç½®)
               -s     棧的最大
               -t     cpu 時間總數的最大A以秒p
               -u     使用者å¯ä»¥é‹è¡Œçš„æœ€å¤§é€²ç¨‹æ•¸
               -v     shell å¯ç”¨çš„虛擬記憶體總é‡çš„æœ€å¤§
 
               如果給出了  limit  A  它將是指定資æºçš„æ–°é¡  (é¸é …  -a   åªé¡¯ç¤ºå®ƒ-
               )。如果沒有給出é¸é …,則å‡è¨­æœ‰     -  C    ïŸ´ç„æ’®W間隔是    1024
               字節,除了 -t 單使˜¯ 秒, -p 單使˜¯ 512 字節的塊èšïš±A -n  å’Œ  -u
               是ä¸å¯èª¿ç¯€çš„C返回
               0,除éžçµ¦å‡ºäº†éžæ³•çš„é¸é …æˆ–åƒæ•¸ï¼Œæˆ–è€…åœ¨è¨­ç½®æ–°çš„é¡æ™‚發生了錯誤。
 
        umask [-p] [-S] [mode]
               使用者創建檔案的掩碼被設置為       mode.        如果        mode
               以數字開始,它被解釋為一茪K進制數;å¦å‰‡è¢«è§£é‡‹ç‚ºé¡žä¼¼æ–¼   chmod(1)
               接å—的符號形å¼çš„æ¨¡å¼æŽ©ç¢¼ã€‚如果忽略了   mode  A    將列å°ç•¶å‰æŽ©ç¢¼-
               Cé¸é …                                                       -S
               使得掩碼以符號形å¼åˆ—å°ï¼›é è¨­è¼¸å‡ºæ˜¯å…«é€²åˆ¶æ•¸ã€‚如果給出了        -p
               é¸é …,並且忽略了 mode  A 輸出將是一種å¯ä»¥å’±å³Žå€æ“—J的形å¼ã€‚返回O
               0,如果æˆåŠŸæ”¹è®Šäº†æ¨¡å¼ï¼Œæˆ–者沒有給出 mode。 其他情æ³è¿”回å‡ã€‚
 
        unalias [-a] [name ...]
               從已定義的別å列表中刪除           name。如果給出了           -a
               將刪除所有別å定義。返回O真,除éžçµ¦å‡ºçš„                   name
               䏿˜¯å·²å®šç¾©çš„別å。
 
        unset [-fv] [name ...]
               å°‡æ¯ name å°æ‡‰çš„è®Šé‡æˆ–函數刪除。如果沒有給出é¸é …,或者給出了 -v
               é¸é …,               name              僅包括              shell
               變é‡ã€‚åªè®€çš„變é‡ä¸èƒ½è¢«å–消定義。如果給出了 -f é¸é …, name 僅包括
               shell                              函數,函數的定義將被刪除。æ¯-
               茬Qå–æ¶ˆå®šç¾©çš„è®Šé‡æˆ–函數都被從後續命令的環境中刪除。 如果 RANDOM,
               SECONDS,   LINENO,  HISTCMD,  FUNCNAME,  GROUPS,  或者  DIRSTACK
               中的任何一茬Qå–æ¶ˆå®šç¾©ï¼Œå®ƒæˆ”N喪失特殊的屬性,å³ä½¿å®ƒæ€®å¶èŒ¬Q-
               å¥s定義。 é€€å‡ºç‹€æ…‹æ˜¯çœŸï¼Œé™¤éž name ä¸å­˜åœ¨æˆ–是åªè®€çš„。
 
        wait [n]
               等待指定的進程,返回它的終止狀態。   n   å¯ä»¥æ˜¯é€²ç¨‹   ID   或一-
               è@業號;如果給出的是作業號,將等待作業的管é“中所有進程。如果沒有給出
               n  A   將等待所有當å‰è™•於激活狀態的å­é€²ç¨‹ï¼Œè¿”回狀態是  0。如果  n
               指定了ä¸å­˜åœ¨çš„進程或作業,返回狀態是
               127。å¦å‰‡ï¼Œè¿”回狀態是所等待的最後一èˆi程或作業的退出狀態。
        如果  bash  以 rbash å稱啟動,或者啟動時使用了 -r é¸é …,那麼它æˆç‚ºå—çš„
        shell。 å—çš„ shell ä¸€èˆ¬ç”¨ä¾†å»ºç«‹ä¸€èŒªé¬„éƒ±ï—  shell  å—到更多控制的環境。
        它的行為與  bash  一P,除了下列行為是ä¸å…許的 (disallowed) æˆ–ä¸æœƒé‹è¡Œçš„
        (not performed)。
 
        o      使用 cd 來改變路徑;
 
        o      è¨­ç½®æˆ–å–æ¶ˆ SHELL, PATH, ENV, 或 BASH_ENV 變é‡çš„F
 
        o      指定的命令åä¸­åŒ…å« / ï¼›
 
        o      æŒ‡å®šåŒ…å« / 的檔å作為傳éžçµ¦å…§å»ºå‘½ä»¤ .  çš„åƒæ•¸ï¼›
 
        o      æŒ‡å®šåŒ…å«æ–œæ§“  (slash)  的檔å作為  -p  é¸é …çš„åƒæ•¸ï¼Œå‚³éžçµ¦   hash
               內建命令;
 
        o      啟動時從 shell 環境中導入 (import) 函數定義;
 
        o      啟動時解釋 shell 環境中 SHELLOPTS 的F
 
        o      使用 >, >|, <>, >&, &>, å’Œ >> 等咿w呿“作符咿wå‘輸出;
 
        o      使用 exec 內建命令來以å¦ä¸€èŒ¤Rä»¤æ›¿æ› shellï¼›
 
        o      使用 enable 內建命令的 -f å’Œ -d é¸é …來增加和刪除內建命令;
 
        o      使用 enable 內建命令來å…è¨±å’Œç¦æ­¢ shell 內建命令;
 
        o      指定 command 內建命令的 -p é¸é …ï¼›
 
        o      使用 set +r 或 set +o restricted ä¾†é—œé–‰å—æ¨¡å¼ã€‚
 
        這些制在所有啟動檔案讀å–ä¹‹å¾Œæ‰æœƒç”Ÿæ•ˆã€‚
 
        當一  shell  稿本作為一茤R令執行時  (åƒè¦‹ä¸Šæ‚¸          (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
               系統Såœçš„åˆå§‹åŒ–檔案,登入 shell 會執行它
        ~/.bash_profile
               茪Håˆå§‹åŒ–檔案,登入 shell 會執行它
        ~/.bashrc
               茪Hçš„æ¯èŒˆç’Šæ³µ shell 啟動時執行的檔案
        ~/.bash_logout
               茪H的登入 shell æ¸…ç†æª”案,當一茧nå…¥ shell 退出時會執行它
        ~/.inputrc
               茪Hçš„ 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  「齙ïŽv
        (`philosophical')  çš„  「錯誤報告〠 å¯ä»¥å¯„給 bug-bash@gnu.org 或者貼到
        Usenet æ–°èžçµ„ gnu.bash.bug 之上。
 
        所有錯誤報告應當包括:
 
        bash 的版本號
        硬體信æ¯å’Œä½œæ¥­ç³»çµ±
        用來編譯的編譯器
        å° bug 行為的æz
        å¯ä»¥æ¿€æ´»é€™ bug 的一茧uå°çš„稿本或者什麼 「秘訣〠(recipe)
 
        bashbug 會自動在它æä¾›çš„錯誤報告模æ¿ä¸­æ’å…¥å‰ä¸‰é …。
 
        關於這份手冊éšç†Šè«–和錯誤報告請直接æäº¤åˆ° chet@ins.CWRU.Edu.
 

BUGS

        它太大了,並且有點慢。
 
        bash 和傳統版本的 sh 之間有一些細微的差別,大部分是因為  POSIX  è¦ç´„çš„-
        n求。
 
        åˆ¥åæ©Ÿåˆ¶åœ¨ä¸€äº›æ‡‰ç”¨ä¸­æœƒæ··æ·†ã€‚
 
        Shell 內建命令和函數ä¸å¯çµ‚æ­¢/å¥s開始。
 
        組åˆçš„命令和使用          `a          ;          b         ;         c'
        å½¢å¼çš„命令åºåˆ—åœ¨é€²ç¨‹è©¦åœ–æš«åœæ™‚ä¸èƒ½å¾ˆå¥½è™•ç†ã€‚       當一èˆi程中止,shell
        會立å³åŸ·è¡Œåºåˆ—中的下一æ¢å‘½ä»¤ã€‚
        也å¯ä»¥å°‡å‘½ä»¤çš„åºåˆ—æ”¾åœ¨åœ“æ‹¬è™Ÿä¸­ï¼Œä¾†å¼·åˆ¶å•Ÿå‹•å­     shell,這樣就å¯ä»¥å°‡å®ƒ-
        怬@為一茬璊舅中謅F。
 
        在        $(...)        命令替æ›ä¸­çš„æ³¨é‡‹ä¸æœƒè¢«è§£é‡‹ï¼Œç›´åˆ°åŸ·è¡Œæ›¿æ›çš„æ™‚唌C
        這將延é²å ±éŒ¯ï¼Œç›´åˆ°å‘½ä»¤é–‹å§‹åŸ·è¡Œä¹‹å¾Œçš„一段時間。
 
        數組變é‡é‚„ä¸èƒ½å°Žå‡º (export)。
 
                  H]
             v <bbbush@163.com>
 
                         s]
        2004.03.05
 
           linu        ma                      n:
        http://cmpp.linuxforum.net