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

NAME

       switch - 依據一個給定的值對多個稿本中的一個進行求值

總覽 SYNOPSIS
       switch ?options? string pattern body ?pattern body ...?

       switch ?options? string {pattern body ?pattern body ...?}
_________________________________________________________________

描述 DESCRIPTION
       switch     命令依次針對每個     pattern    (模式)參數匹配它的    string
       參數。如果它發現一個                    pattern                    匹配
       string,則立即通過把跟隨在(這個模式)後面的  body  參數遞歸的傳遞給  Tcl
       解釋器來求值它,並返回這次求值的結果。如果最後的     pattern     參數是
       default,則它匹配所有的東西。如果沒有     pattern    參數匹配    string
       並且沒有給出預設,則 switch 命令返回一個空串。

       如果給              switch               的最初的參數以               -
       開始,則它們被作為選項來對待。當前支持下列選項:

       -exact    當與一個模式比較 string  的時候,使用精確匹配。這是預設的。

       -glob     當與一個模式比較    string    的時候,使用通配符式樣的匹配(與
                 string match 命令所實現的相同)。

       -regexp   當與一個模式比較     string     的時候,使用正則表達式匹配(在
                 re_syntax 參考頁中描述)。

       --        選項結束的標誌。此後的參數即使以    -   開始仍被作為   string
                 來對待。

       為                  patternbody
       參數提供了兩個語法。第一個是對於每個模式和命令使用一個獨立的參數;如果在一些模式或命令上需要替換,則這種形式是很方便的。第二種形式是把所有的模式和命令放在一起作為一個單一的參數;這個參數必須有正確的列表結構,它的元素是模式和命令。第二種形式適合於構造多行
       switch
       命令,因為花括號包圍著所有元素,所以沒有必要在每行結束之處包含一個反斜槓。
       在第二種形式中因為
       pattern參數在花括號中,所以在它們上不進行命令和變量替換;這使得第二種形式的行為在一些情況下與第一種形式不同。

       如果指定一個      body       為``-'',則意味著給下一個模式的       body
       也被用於這個模式(如果下一個模式也有一個執行體「-」則使用它後面的這個執行體,以此類推)。這個特征使在多個模式之間共享一個單一的
       body 成為可能。

       在                                                               switch
       命令放置注釋要注意。注釋只能放置在一個模式的執行體中,而不能與模式混合。

       下面是 switch 命令的一些例子:
              switch abc a - b {format 1} abc {format 2} default {format 3}
       將返回 2,
              switch -regexp aaab {
                ^a.*b$ -
                b {format 1}
                a* {format 2}
                default {format 3}
              }
       將返回  1, 而
              switch xyz {
                a
                   -
                b
                   {
                   # Correct Comment Placement
                   format 1
                }
                a*
                   {format 2}
                default
                   {format 3}
              }
       將返回  3.

參見 SEE ALSO
       for(n), if(n), regexp(n)

關鍵字 KEYWORDS
       switch, match, regular expression

[中文版維護人]
       寒蟬退士

[中文版最新更新]
       2001/11/15

《中國 Linux 論壇 man 手冊頁翻譯計劃》:
       http://cmpp.linuxforum.net