📄 switch.n
字号:
'\"'\" Copyright (c) 1993 The Regents of the University of California.'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.'\"'\" See the file "license.terms" for information on usage and redistribution'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.'\" '\" SCCS: @(#) switch.n 1.10 97/10/31 13:05:55'\" .so man.macros.TH switch n 7.0 Tcl "Tcl Built-In Commands".BS'\" Note: do not modify the .SH NAME line immediately below!.SH NAMEswitch \- Evaluate one of several scripts, depending on a given value.SH SYNOPSIS\fBswitch \fR?\fIoptions\fR?\fI string pattern body \fR?\fIpattern body \fR...?.sp\fBswitch \fR?\fIoptions\fR?\fI string \fR{\fIpattern body \fR?\fIpattern body \fR...?}.BE.SH DESCRIPTION.PPThe \fBswitch\fR command matches its \fIstring\fR argument against each ofthe \fIpattern\fR arguments in order.As soon as it finds a \fIpattern\fR that matches \fIstring\fR itevaluates the following \fIbody\fR argument by passing it recursivelyto the Tcl interpreter and returns the result of that evaluation.If the last \fIpattern\fR argument is \fBdefault\fR then it matchesanything.If no \fIpattern\fR argumentmatches \fIstring\fR and no default is given, then the \fBswitch\fRcommand returns an empty string..PPIf the initial arguments to \fBswitch\fR start with \fB\-\fR thenthey are treated as options. The following options arecurrently supported:.TP 10\fB\-exact\fRUse exact matching when comparing \fIstring\fR to a pattern. Thisis the default..TP 10\fB\-glob\fRWhen matching \fIstring\fR to the patterns, use glob-style matching(i.e. the same as implemented by the \fBstring match\fR command)..TP 10\fB\-regexp\fRWhen matching \fIstring\fR to the patterns, use regularexpression matching(i.e. the same as implemented by the \fBregexp\fR command)..TP 10\fB\-\|\-\fRMarks the end of options. The argument following this one willbe treated as \fIstring\fR even if it starts with a \fB\-\fR..PPTwo syntaxes are provided for the \fIpattern\fR and \fIbody\fR arguments.The first uses a separate argument for each of the patterns and commands;this form is convenient if substitutions are desired on some of thepatterns or commands.The second form places all of the patterns and commands together intoa single argument; the argument must have proper list structure, withthe elements of the list being the patterns and commands.The second form makes it easy to construct multi-line switch commands,since the braces around the whole list make it unnecessary to include abackslash at the end of each line.Since the \fIpattern\fR arguments are in braces in the second form,no command or variable substitutions are performed on them; this makesthe behavior of the second form different than the first form in somecases..PPIf a \fIbody\fR is specified as ``\fB\-\fR'' it means that the \fIbody\fRfor the next pattern should also be used as the body for thispattern (if the next pattern also has a body of ``\fB\-\fR''then the body after that is used, and so on).This feature makes it possible to share a single \fIbody\fR amongseveral patterns..PPBelow are some examples of \fBswitch\fR commands:.CS\fBswitch\0abc\0a\0\-\0b\0{format 1}\0abc\0{format 2}\0default\0{format 3}\fR.CEwill return \fB2\fR, .CS\fBswitch\0\-regexp\0aaab { ^a.*b$\0\- b\0{format 1} a*\0{format 2} default\0{format 3}}\fR.CEwill return \fB1\fR, and.CS\fBswitch\0xyz { a \- b {format 1} a* {format 2} default {format 3}}\fR.CEwill return \fB3\fR..SH KEYWORDSswitch, match, regular expression
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -