Manpages

______________________________________________________________________________

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

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh