赞
踩
Tcl 语言基础
冒号和分号将命令分开;
使用#号进行注释;
set x 10 # 定义变量x,并把x的值赋为10
set y x+100 # y的值是x+100,而不是110
set y $x+100 # y的值是10+100, 也不是110 用了变量替换
set y [expr $x+100] # y的值是110, 用了命令替换
注意:
**1. 变量替换 :**变量名由$后面的所有字母、数字和下划线组成。 遇到 非 字母、数字和下划线就会终止;
set x 10 # 定义变量x,并把x的值赋为10
set y $x # y的值10
set x~ 11 # x~ 的值是11
set y $x~ # y的值是 10~
set y ${x~} # y的值是 11
set a "\$" # 将a设置成“$”, \阻止了$的替换,将$解析成字符$
set a \x48 # 对应\xhh
返回:H 十六进制的48是72,对应字符H
**2. 命令替换:**如果一个单词以字符串{*}
开头,之后紧接着非空白字符, Tcl会移除开头的{*}
,把该单词的剩余部分作为含有单词分隔符的语句进行解析与替换。在替换之后,Tcl会再次解析这些单词,但不进行替换,校验确定他们的确是一个或多个语法完整的单词。如果校验通过,这些单词会被独立地假如命令行进行处理;否则, Tcl会报语法错误。
% glob *v # 查找 .v 文件
返回: a.v b.v c.v 注意这几个文件包含了space
% file delete [glob *v] #想删除所有.v 文件,但是没成功,
% ls
返回: a.v b.v c.v %_command.log
% file delete {*}[glob *v] #加上 {*}, 删除成功
3. 阻止解析器对$和分号等特殊字符进行特殊处理,这些方法称为引用,包括 反斜杠\ ,双引号“”,大括号{}
如果你要把某个简单变量当字符串处理看待,可以使用string命令提供的功能
1. string match
匹配方式使用的是glob-style
string match ?-nocase? Pattern string
如果pattern匹配string,返回1,否则返回0; 如果有-nocase参数,则不许分大小写
2. string equal
string equal ?-nocase? ?-length int? string1 string2
对两个字符串进行比较,如果他们严格相同(-exact),返回1,否则0, -length可以指定匹配的长度
string compare ?-nocase? ?-length int? string1 string2
对两个字符串进行比较,如果他们严格相同,返回0; 如果第一个字符串 在字典中 先于 第二个字符串,返回-1;否则返回1。 -length可以指定匹配的长度
string length string1
返回字符串的长度。 空格,换行符也算一个字符
string range string first last
与string index相似,只不过他需要两个索引,返回first到last之间的字符。如果first小于0,则按0处理; last也是类似
string index string charlndex
string replace string first last ?newstring?
使用newstring替换first到last位置的字符,如果呢我string不存在,则将first到last的字符删除,如果first > last ,则不进行替换
string trim string ?chars?
将string开头和结尾出现的要裁剪的字符都删掉; 从两端开始,如果字符是i或d或c,则裁掉。如果是针对字符,而不是字符串idc
string trimleft string ?chars?
将string开头出现的要裁剪的字符都删掉
string trimright string ?chars?
将string开头出现的要裁剪的字符都删掉
string tolower string ?first? ?last?
将first到last位置的字符串改成小写
string toupper string ?first? ?last?
将first到last位置的字符串改成大写
string toupper string ?first? ?last?
将first到last位置的字符串改成标题式格式(首字母大写)
string repeat string count
string reverse string
创建 list 的三种方法
list 相关命令
llength list
lrange list first last
list ?index…?
linsert list index value ?value…? list 指定位置插入新元素
lset varName ?index…? newValue 将变量varName中的index位置的元素改成newValue
lreplace list first last ?value value…? 把list中从first到last的元素换成零个或者多个元素
严格通配 exact:是指两个字符串必须完全相同,这里不允许通配符出现
想要匹配 "hello world"
exact "hello world" #匹配成功.
exact "hello*" #匹配 失败
glob "hello*" #匹配成功
glob-style的通配方式:
正则表达式如下
eof 是判断是否到末端的意思
gets $rfile_handle line 是读出该文件的一行
source + 脚本 表示可以让脚本吃进
info 判断一个变量的存在
功能:自动对齐
查找文件最小值:
查找文件最大值:
awk 把第七个元素找出来,元素是以空格隔开的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。