'\" '\" Copyright (c) 1993-1994 The Regents of the University of California. '\" Copyright (c) 1994-1996 Sun Microsystems, Inc. '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" '\" The definitions below are for supplemental macros used in Tcl/Tk '\" manual entries. '\" '\" .AP type name in/out ?indent? '\" Start paragraph describing an argument to a library procedure. '\" type is type of argument (int, etc.), in/out is either "in", "out", '\" or "in/out" to describe whether procedure reads or modifies arg, '\" and indent is equivalent to second arg of .IP (shouldn't ever be '\" needed; use .AS below instead) '\" '\" .AS ?type? ?name? '\" Give maximum sizes of arguments for setting tab stops. Type and '\" name are examples of largest possible arguments that will be passed '\" to .AP later. If args are omitted, default tab stops are used. '\" '\" .BS '\" Start box enclosure. From here until next .BE, everything will be '\" enclosed in one large box. '\" '\" .BE '\" End of box enclosure. '\" '\" .CS '\" Begin code excerpt. '\" '\" .CE '\" End code excerpt. '\" '\" .VS ?version? ?br? '\" Begin vertical sidebar, for use in marking newly-changed parts '\" of man pages. The first argument is ignored and used for recording '\" the version when the .VS was added, so that the sidebars can be '\" found and removed when they reach a certain age. If another argument '\" is present, then a line break is forced before starting the sidebar. '\" '\" .VE '\" End of vertical sidebar. '\" '\" .DS '\" Begin an indented unfilled display. '\" '\" .DE '\" End of indented unfilled display. '\" '\" .SO '\" Start of list of standard options for a Tk widget. The '\" options follow on successive lines, in four columns separated '\" by tabs. '\" '\" .SE '\" End of list of standard options for a Tk widget. '\" '\" .OP cmdName dbName dbClass '\" Start of description of a specific option. cmdName gives the '\" option's name as specified in the class command, dbName gives '\" the option's name in the option database, and dbClass gives '\" the option's class in the option database. '\" '\" .UL arg1 arg2 '\" Print arg1 underlined, then print arg2 normally. '\" '\" '\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. .if t .wh -1.3i ^B .nr ^l \n(.l .ad b '\" # Start an argument description .de AP .ie !"\\$4"" .TP \\$4 .el \{\ . ie !"\\$2"" .TP \\n()Cu . el .TP 15 .\} .ta \\n()Au \\n()Bu .ie !"\\$3"" \{\ \&\\$1 \\fI\\$2\\fP (\\$3) .\".b .\} .el \{\ .br .ie !"\\$2"" \{\ \&\\$1 \\fI\\$2\\fP .\} .el \{\ \&\\fI\\$1\\fP .\} .\} .. '\" # define tabbing values for .AP .de AS .nr )A 10n .if !"\\$1"" .nr )A \\w'\\$1'u+3n .nr )B \\n()Au+15n .\" .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n .nr )C \\n()Bu+\\w'(in/out)'u+2n .. .AS Tcl_Interp Tcl_CreateInterp in/out '\" # BS - start boxed text '\" # ^y = starting y location '\" # ^b = 1 .de BS .br .mk ^y .nr ^b 1u .if n .nf .if n .ti 0 .if n \l'\\n(.lu\(ul' .if n .fi .. '\" # BE - end boxed text (draw box now) .de BE .nf .ti 0 .mk ^t .ie n \l'\\n(^lu\(ul' .el \{\ .\" Draw four-sided box normally, but don't draw top of .\" box if the box started on an earlier page. .ie !\\n(^b-1 \{\ \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .el \}\ \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .\} .fi .br .nr ^b 0 .. '\" # VS - start vertical sidebar '\" # ^Y = starting y location '\" # ^v = 1 (for troff; for nroff this doesn't matter) .de VS .if !"\\$2"" .br .mk ^Y .ie n 'mc \s12\(br\s0 .el .nr ^v 1u .. '\" # VE - end of vertical sidebar .de VE .ie n 'mc .el \{\ .ev 2 .nf .ti 0 .mk ^t \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' .sp -1 .fi .ev .\} .nr ^v 0 .. '\" # Special macro to handle page bottom: finish off current '\" # box/sidebar if in box/sidebar mode, then invoked standard '\" # page bottom macro. .de ^B .ev 2 'ti 0 'nf .mk ^t .if \\n(^b \{\ .\" Draw three-sided box if this is the box's first page, .\" draw two sides but no top otherwise. .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .\} .if \\n(^v \{\ .nr ^x \\n(^tu+1v-\\n(^Yu \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c .\} .bp 'fi .ev .if \\n(^b \{\ .mk ^y .nr ^b 2 .\} .if \\n(^v \{\ .mk ^Y .\} .. '\" # DS - begin display .de DS .RS .nf .sp .. '\" # DE - end display .de DE .fi .RE .sp .. '\" # SO - start of list of standard options .de SO .SH "STANDARD OPTIONS" .LP .nf .ta 5.5c 11c .ft B .. '\" # SE - end of list of standard options .de SE .fi .ft R .LP See the \\fBoptions\\fR manual entry for details on the standard options. .. '\" # OP - start of full description for a single option .de OP .LP .nf .ta 4c Command-Line Name: \\fB\\$1\\fR Database Name: \\fB\\$2\\fR Database Class: \\fB\\$3\\fR .fi .IP .. '\" # CS - begin code excerpt .de CS .RS .nf .ta .25i .5i .75i 1i .. '\" # CE - end code excerpt .de CE .fi .RE .. .de UL \\$1\l'|0\(ul'\\$2 .. .TH array 3tcl 8.3 Tcl "Tcl Built-In Commands" .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME array \- 操縱陣列變數 .SH 總覽 SYNOPSIS \fBarray \fIoption arrayName\fR ?\fIarg arg ...\fR? .BE .SH 描述 DESCRIPTION .PP 這個命令在由 \fIarrayName\fR 給出的變數上進行多種操作中的某一項。除了在後面為單獨的命令(專門)指定之外,\fIarrayName\fR 必須是一個現存的陣列變數的名字。\fIoption\fR 選項決定命令完成何種動作。合法的選項(可以用縮寫)有: .TP \fBarray anymore \fIarrayName searchId\fR 如果在一次陣列查詢中還有元素等待處理則返回 1,如果所有元素都被返回過了則返回 0。\fISearchId\fR 指示在 \fIarrayName\fR 上檢查哪個查詢,它必須是從以前的 \fBarray startsearch\fR 呼叫返回的值。如果一個數組的某個元素有空名字時這個選項特別有用,因為從 \fBarray nextelement\fR 返回的值不能指示出查詢是否完成。 .TP \fBarray donesearch \fIarrayName searchId\fR 這個命令終止一個數組查詢並銷燬與這個查詢有關的所有狀態。\fISearchId\fR 指示在 \fIarrayName\fR 上要要銷燬哪個查詢,必須時在以前呼叫 \fBarray startsearch\fR 返回的值。返回一個空串。 .TP \fBarray exists \fIarrayName\fR 如果 \fIarrayName\fR 是一個數組變數返回 1,如果沒有叫這個名字的變數或是一個標量變數則返回 0。 .TP \fBarray get \fIarrayName\fR ?\fIpattern\fR? 返回包含成對的元素的一個列表。每對的第一個元素是在 \fIarrayName\fR 中的元素名,每對的第二個元素是陣列元素的值。沒定義成對元素的次序。如果沒指定 \fIpattern\fR,則陣列的所有元素被包括在結果中,如果指定了 \fIpattern\fR,則結果中只包括那些名字匹配 \fIpattern\fRn 的元素(使用 \fBstring match\fR 的匹配規則)。如果 \fIarrayName\fR 不是一個數組變數的名字,或者陣列不包含元素,則返回一個空列表。 .TP \fBarray names \fIarrayName\fR ?\fIpattern\fR? 返回在一個列表,它包含陣列中匹配 \fIpattern\fR 的所有元素的名字(使用 \fBstring match\fR 匹配規則)。 如果省略了 \fIpattern\fR 則命令返回在陣列中所有元素的名字。如果在陣列中沒有(匹配的)元素,或者 \fIarrayName\fRe 不是一個數組變數的名字,則返回一個空串。 .TP \fBarray nextelement \fIarrayName searchId\fR 返回在 \fIarrayName\fR 中下一個元素的名字,如果在這個查詢中所有 \fIarrayName\fR 的元素都被已經被返回過了則返回空串。\fIsearchId\fR 引數標識一個查詢,並且必須是 \fBarray startsearch\fR 命令的返回值。 警告: 如果從這個陣列中新增或刪除元素,那麼自動的終止所有的查詢,有如呼叫了 \fBarray donesearch\fR,這將導致對這些查詢的 \fBarray nextelement\fR 操作失敗。 .TP \fBarray set \fIarrayName list\fR 設定在 \fIarrayName\fR 中的一個或多個元素的值。list 的形式必須與 \fBarray get\fR 返回的相同,由偶數個元素組成的。在 \fIlist\fR 中每個奇數元素被作為在 \fIarrayName\fR 中被作為一個元素名對待,後面跟隨的 \fIlist\fR 中的元素被作為這個陣列元素的新值使用。如果變數 \fIarrayName\fR 不存在並且 \fIlist\fR 是空, 建立是空值的 \fIarrayName\fR。 .TP \fBarray size \fIarrayName\fR 返回一個給出在一個數組中的元素個數的一個十進位制數的字串。如果 \fIarrayName\fR 不是一個數組的名字則返回 0。 .TP \fBarray startsearch \fIarrayName\fR 這個命令在用 \fIarrayName\fR 給出的陣列上初始化一個逐個元素的查詢,呼叫 \fBarray nextelement\fR 命令將返回在陣列中單獨元素的名字。在查詢完成的時候,要呼叫 \fBarray donesearch\fR 命令。返回值是一個在 \fBarray nextelement\fR 和 \fBarray donesearch\fR 命令中必須要用的查詢識別符號;對同一個陣列允許多個查詢同時進行。 .VS 8.3 .TP \fBarray unset \fIarrayName\fR ?\fIpattern\fR? 在一個數組中刪除匹配 \fIpattern\fR 的所有元素(使用 \fBstring match\fR 的匹配規則)。如果 \fIarrayName\fR 不是一個數組變數的名字或在陣列中沒有匹配的元素,則返回一個空陣列。如果是一個數組變數的名字並且省略了 \fIpattern\fR ,則命令刪除整個陣列。 .VE 8.3 .SH 關鍵字 KEYWORDS array, element names, search .SH "[中文版維護人]" .B 寒蟬退士 .SH "[中文版最新更新]" .B 2001/06/22 .SH "《中國 Linux 論壇 man 手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR