一、什么是TCL

Tcl 全称是 Tool command Language。它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握。

Tcl 语言是一个解释性语言,所谓解释性是指不象其他高级语言需要通过编译和联结,它象其他 shell 语言一样,直接对每条语句顺次解释执行。

Tcl 数据类型简单。对 Tcl 来说,它要处理的数据只有一种——字符串。Tcl 将变量值以字符串的形式进行存储,不关心它的实际使用类型。

二、TCL的基本语法

1.输出:tcl使用”puts"关键字来作为输出语句

[语法] : puts ?-nonewline? ?channelId? string 

Tcl 的输出命令是“puts”,将字符串输出到标准输出 channelId。语法中两个问号之间的参数为可选参数。

puts hello
结果=> hello puts –nonewline "hello hello"
结果=>hello hello

但如果输出一段有空格的文本,则要用双引号或者花括号括起来

-nonewline 选项告诉 puts 不输出回车换行。

注意:双引号和花括号的作用是将多个词组织成一个变元,但他们是有差别的!这种差别就是在处理“替换操作”时,前者允许替换发生,而后者则可能会阻止替换。关于两者用法与差别以后会陆续讲到。在这里两者作用相同。

2.赋值: tcl 使用“set”关键字来定义参数,不必指定变量值的类型,因为变量值的类型仅一种——字符串。为变量赋值时,会为变量开辟一段内存空间来存储变量值。

[语法] set varName [value]  

set a Hello        ;#定义变量 a 并赋值
=>Hello
puts $a ;#输出变量值
=>Hello
set a “Hello world” ;#重新赋值
=>Hello world
set a “Hello world”
=> Test Tcl ;#输出变量值,此时不加”$” puts $a
=>Hello world ;#输出变量值,此时要加”$” puts a
=> a ;#输出字符”a” set b $a
=>Hello world puts $b
=>Hello world ;#将 a 的值赋给 b

3.替换

(1):$

“$”符实现引用替换,用以引用参数值。上面也用到过

Tcl 对替换只进行一遍解释,对嵌套的”$”不于理睬。

set foo  oo
=>oo
set dollar foo
=>foo
set x $$dollar
=>$foo ;#只解释一次,将“$dollar”用 dollar 的值(foo)代替, ;#命令等效为 set x {$foo},大括阻止替换。
set x {$foo}
=>$foo
set y $x
=>$foo ; #一轮替换

(2) :[]

方括号“[]”完成命令替换。用“[]”将一条命令括起来,命令执行完成后,返回结果。

set b [set a   5]                  ;#set a 5 命令输出的结果赋给 b
=>5 puts $b
=>5 set c [expr 5 * 10] ;#将乘式结果赋给 c
=>50

(3): " " 和{}

双引号和花括号将多个单词组织成一个参数,也是一种替换操作。””和{}内的替换如何进行

呢?一般的原则是在" "内的替换正常进行,而在{}内的替换有可能会被阻止。

set a 123
=>123 puts "$a" #会替换
=>123 puts {$a} #不会替换
=>$a

三、总结

TCL语言的执行顺序是:先分组,再替换,最后执行

花括号中不准替换
双引号和花括号的作用都是分组,但是不同之处在于是否支持替换
语句的运行分3步走:
1、首先分组
2、其次替换
3、最后运行

$的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点
分组有三种方法:空格,双引号和花括号
另外转义符\在这里的作用是提升或者消除字符的能力

TCL语言笔记:TCL基础语法的更多相关文章

  1. Python:笔记(1)——基础语法

    Python:笔记(1)——基础语法 我很抱歉有半年没有在博客园写过笔记了,客观因素有一些,但主观原因居多,再多的谴责和批判也都于事无补,我们能做的就是重振旗鼓,继续出发! ——写在Python之前 ...

  2. C#快速入门笔记(1)——基础语法

    C#快速入门笔记(1)——基础语法 总体框架:

  3. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  4. Python学习的个人笔记(基础语法)

    Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...

  5. python3笔记<一>基础语法

    随着AI人工智能的兴起,网络安全的普及,不论是网络安全工程师还是AI人工智能工程师,都选择了Python.(所以本菜也来开始上手Python) Python作为当下流行的脚本语言,其能力不言而喻,跨平 ...

  6. Hive学习笔记:基础语法

    Hive基础语法 1.创建表 – 用户表 CREATE [EXTERNAL外部表] TABLE [IF NOT EXISTS 是否存在] HUserInfo ( userid int comment ...

  7. TCL语言笔记:TCL中的数组

    一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...

  8. TCL语言笔记:TCL中的控制结构命令

    一.引言 控制结构允许程序根据不同的状态.条件和参数来选择不同的处理和执行路径,从而使代码具有更强的灵活性.健壮性和可读性. Tcl 提供了 if.if/else.if/elseif.foreach. ...

  9. TCL语言笔记:TCL中的数学函数

    一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10  ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...

随机推荐

  1. Vim复制粘贴

    用了快一年Vim了,今天想要将vim里的一句话复制到浏览器里,结果捣鼓了半天.汗! 解决方案: 在vim中按“V”进入可视模式,选中要复制的文字 接下来要按3个键“+y(引号.加号.字母y),这样要复 ...

  2. crontab的应用

    当我们需要定时执行某个系统内的php脚本程序时,可以这样设置crontab * 19 * * * /usr/local/php/bin/php /var/www/test.php 此处表示调用php( ...

  3. Django模版进阶

    # -*- coding: utf-8 -*-from django.shortcuts import renderdef home(request): string = "测试" ...

  4. python_day2_homework_1(简单购物商城)

    '''简单购物商城(要求):1,商品展示,价格2,买,加入购物车3,付款,钱不够''' 1 #_*_ coding: utf-8 _*_ __author__ = 'A-rno' meu_list_1 ...

  5. 每日一“酷”之difflib

    介绍:difflib 比较序列.该模块包含一些用来计算和处理序列直接差异的工具.她对于比较文本尤其用,其中包含的函数可以使用多种常用差异格式生成报告. 测试数据(splitlines()按行划分为序列 ...

  6. jQuery对象和DOM对象的互相转换【 转】

    jQuery对象转换为dom对象 只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的 ...

  7. Sqlite: unable to open database file

    A database connect, there updated both queries (different statement, and regardless of order), after ...

  8. awk中文手册

    1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l        awk 适于解决哪些问题 ? l        awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模 ...

  9. using System.Threading.Tasks;

    using System.Threading.Tasks; .Net并行库介绍——Task1

  10. lnmp停用nginx,改用apache

    编译安装的lnmp环境 总是出现502错误,修改了各种配置也没用,暂时先放弃nginx,改用apache apache使用yum安装方式 需要注意的事项,将网站根目录的用户组改为 chown apac ...