TCL 语言基础

这篇具有很好参考价值的文章主要介绍了TCL 语言基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

Tcl 语言基础
冒号和分号将命令分开;
使用#号进行注释;tcl语言,perl,unix,开发语言


一、Tcl 语法之替换

1. 三种变量替换方式:变量替换 $, 命令替换 [], 反斜杠替换 \

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 十六进制的4872,对应字符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. 阻止解析器对$和分号等特殊字符进行特殊处理,这些方法称为引用,包括 反斜杠\ ,双引号“”,大括号{}
tcl语言,perl,unix,开发语言

tcl语言,perl,unix,开发语言

2. 对于变量:需要注意的

  • 无需声明定义, 直接使用set进行创建,unset移除,变量包含变量名和变量值
  • 使用$进行调用
  • 区分大小写
  • 变量名和变量值 都可以由任意字符组成,建议使用字母开头,使用字母/下划线/加数字 进行命名
  • 常用的变量类型:string list array directionary, S公司专有的collection
  • 变量存储类型 分为 字符串表达形式 和 内部表达形式(整数,实数,名称,列表,Tcl脚本)

2.1 string命令

如果你要把某个简单变量当字符串处理看待,可以使用string命令提供的功能
tcl语言,perl,unix,开发语言
1. string match

匹配方式使用的是glob-style
string match ?-nocase? Pattern string 
如果pattern匹配string,返回1,否则返回0; 如果有-nocase参数,则不许分大小写

tcl语言,perl,unix,开发语言
2. string equal

  • string equal ?-nocase? ?-length int? string1 string2
    对两个字符串进行比较,如果他们严格相同(-exact),返回1,否则0, -length可以指定匹配的长度
    tcl语言,perl,unix,开发语言

  • string compare ?-nocase? ?-length int? string1 string2
    对两个字符串进行比较,如果他们严格相同,返回0; 如果第一个字符串 在字典中 先于 第二个字符串,返回-1;否则返回1。 -length可以指定匹配的长度
    tcl语言,perl,unix,开发语言

  • string length string1
    返回字符串的长度。 空格,换行符也算一个字符
    tcl语言,perl,unix,开发语言

  • string range string first last
    与string index相似,只不过他需要两个索引,返回first到last之间的字符。如果first小于0,则按0处理; last也是类似
    tcl语言,perl,unix,开发语言

  • string index string charlndex
    tcl语言,perl,unix,开发语言

  • string replace string first last ?newstring?
    使用newstring替换first到last位置的字符,如果呢我string不存在,则将first到last的字符删除,如果first > last ,则不进行替换
    tcl语言,perl,unix,开发语言

    • string map ?-nocase? mapping string
      将string中出现的所有关键字置换为响应的值。置换的按顺序进行的列表中先出现的关键字先处理。
      只对字符串迭代一次,所以前面进行置换的不会影响接下来的匹配查找。
      tcl语言,perl,unix,开发语言
  • string trim string ?chars?
    将string开头和结尾出现的要裁剪的字符都删掉; 从两端开始,如果字符是i或d或c,则裁掉。如果是针对字符,而不是字符串idc
    tcl语言,perl,unix,开发语言

  • string trimleft string ?chars?
    将string开头出现的要裁剪的字符都删掉
    tcl语言,perl,unix,开发语言

  • string trimright string ?chars?
    将string开头出现的要裁剪的字符都删掉
    tcl语言,perl,unix,开发语言

  • string tolower string ?first? ?last?
    将first到last位置的字符串改成小写
    tcl语言,perl,unix,开发语言

  • string toupper string ?first? ?last?
    将first到last位置的字符串改成大写
    tcl语言,perl,unix,开发语言

  • string toupper string ?first? ?last?
    将first到last位置的字符串改成标题式格式(首字母大写)
    tcl语言,perl,unix,开发语言

  • string repeat string count
    tcl语言,perl,unix,开发语言

  • string reverse string
    tcl语言,perl,unix,开发语言

2.2 list

创建 list 的三种方法
tcl语言,perl,unix,开发语言
list 相关命令
tcl语言,perl,unix,开发语言

  • llength list
    tcl语言,perl,unix,开发语言

  • lrange list first last
    tcl语言,perl,unix,开发语言

  • list ?index…?
    tcl语言,perl,unix,开发语言

  • linsert list index value ?value…? list 指定位置插入新元素
    tcl语言,perl,unix,开发语言

  • lset varName ?index…? newValue 将变量varName中的index位置的元素改成newValue
    tcl语言,perl,unix,开发语言

  • lreplace list first last ?value value…? 把list中从first到last的元素换成零个或者多个元素
    tcl语言,perl,unix,开发语言tcl语言,perl,unix,开发语言
    tcl语言,perl,unix,开发语言

2.3 search

tcl语言,perl,unix,开发语言

2.4 array

tcl语言,perl,unix,开发语言

2.5 expr命令, 基本与verilog相同

tcl语言,perl,unix,开发语言

二、Tcl的匹配方式

1.三种匹配方式: exact, glob 和正则表达式

严格通配 exact:是指两个字符串必须完全相同,这里不允许通配符出现

想要匹配 "hello world"
exact "hello world" #匹配成功.
exact "hello*" #匹配 失败
glob "hello*" #匹配成功

glob-style的通配方式:
tcl语言,perl,unix,开发语言
正则表达式如下
tcl语言,perl,unix,开发语言

三、流控制

1. if 条件控制

  • if expr1 body1 elseif expr2 body2 elseif … ?else? ?bodyN?

tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言

2. while 循环

  • while test body
    参数test是一个表达式,body是一个脚本。如果表达式结果为非零,则运行脚本,知道表达式等于零才停止循环。此时while命令中断并返回一个空字符串。
    tcl语言,perl,unix,开发语言

3. foreach

tcl语言,perl,unix,开发语言

4. switch 相当于verilog中的case

tcl语言,perl,unix,开发语言

5. break 和continue和C语言一样

tcl语言,perl,unix,开发语言

四、函数

1. 函数的基本结构

tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言

五、文件操作 useful

eof 是判断是否到末端的意思
gets $rfile_handle line 是读出该文件的一行

tcl语言,perl,unix,开发语言

tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言

六、常用命令

source + 脚本 表示可以让脚本吃进
info 判断一个变量的存在
tcl语言,perl,unix,开发语言

七、脚本解读

功能:自动对齐
查找文件最小值:
tcl语言,perl,unix,开发语言
查找文件最大值:
tcl语言,perl,unix,开发语言
tcl语言,perl,unix,开发语言
awk 把第七个元素找出来,元素是以空格隔开的
tcl语言,perl,unix,开发语言文章来源地址https://www.toymoban.com/news/detail-608992.html


总结

到了这里,关于TCL 语言基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCL脚本语言光速入门教程,一篇就够了(超全查表)

             目录 引子:初见TCL 基本命令 置换命令 普通置换 变量置换 命令置换 反斜杠置换 其他置换 脚步命令 eval命令 source命令 语言命令 简单变量 数组变量 重构变量及其操作 补充概念 全局变量和局部变量 小结         最近突然遇到了要用TCL脚本语言操作的需求,

    2024年01月25日
    浏览(49)
  • 编写Tcl脚本创建整个Vivado工程并通过Git对Tcl脚本进行管理

    简介 Tcl(Tool Command Language)是一种简单易学、高效的脚本语言,可用于多种应用程序和操作系统。Xilinx Vivado是一款用于FPGA开发的综合软件平台,其内部集成了Tcl Shell,可以通过编写Tcl脚本自动化完成Vivado的工程创建和配置,从而提高工作效率和代码复用性。本文将介绍如何

    2024年02月16日
    浏览(41)
  • TCL雷鸟电视卸载内置应用

    TCL雷鸟电视卸载内置应用 TCL雷鸟电视是一款性价比很高的电视,配置高性能好,价格不贵,但是系统中内置了一些垃圾应用,今天就教大家如何卸载这些应用。 1、进入设置–系统-系统信息界面,连续按: 上 下左右 键就出现了adb开关选项,将adb打开。 2、将电脑和雷鸟电视

    2024年02月14日
    浏览(43)
  • (55)TCL脚本命令【eval】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【eval】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很重

    2024年02月16日
    浏览(32)
  • (51)TCL脚本命令【foreach】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【foreach】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很

    2024年02月11日
    浏览(27)
  • (65)TCL脚本命令【regexp】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【regexp】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很

    2024年02月04日
    浏览(35)
  • (66)TCL脚本命令【regsub】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【regsub】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很

    2024年02月14日
    浏览(25)
  • (56)TCL脚本命令【puts】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【puts】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很重

    2024年02月14日
    浏览(30)
  • (87)TCL脚本命令【lappend】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【lappend】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很

    2024年02月08日
    浏览(42)
  • (62)TCL脚本命令【format】

    1.1 TCL简介 1.2 TCL的起源与发展 1.3 TCL语言与库介绍 1.4 TCL运行环境 1.5 TCL脚本命令【format】 1.6 结束语 Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很

    2024年02月13日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包