TCL语言笔记:TCL基础语法
一、什么是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基础语法的更多相关文章
- Python:笔记(1)——基础语法
Python:笔记(1)——基础语法 我很抱歉有半年没有在博客园写过笔记了,客观因素有一些,但主观原因居多,再多的谴责和批判也都于事无补,我们能做的就是重振旗鼓,继续出发! ——写在Python之前 ...
- C#快速入门笔记(1)——基础语法
C#快速入门笔记(1)——基础语法 总体框架:
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- Python学习的个人笔记(基础语法)
Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...
- python3笔记<一>基础语法
随着AI人工智能的兴起,网络安全的普及,不论是网络安全工程师还是AI人工智能工程师,都选择了Python.(所以本菜也来开始上手Python) Python作为当下流行的脚本语言,其能力不言而喻,跨平 ...
- Hive学习笔记:基础语法
Hive基础语法 1.创建表 – 用户表 CREATE [EXTERNAL外部表] TABLE [IF NOT EXISTS 是否存在] HUserInfo ( userid int comment ...
- TCL语言笔记:TCL中的数组
一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...
- TCL语言笔记:TCL中的控制结构命令
一.引言 控制结构允许程序根据不同的状态.条件和参数来选择不同的处理和执行路径,从而使代码具有更强的灵活性.健壮性和可读性. Tcl 提供了 if.if/else.if/elseif.foreach. ...
- TCL语言笔记:TCL中的数学函数
一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10 ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...
随机推荐
- Vim复制粘贴
用了快一年Vim了,今天想要将vim里的一句话复制到浏览器里,结果捣鼓了半天.汗! 解决方案: 在vim中按“V”进入可视模式,选中要复制的文字 接下来要按3个键“+y(引号.加号.字母y),这样要复 ...
- crontab的应用
当我们需要定时执行某个系统内的php脚本程序时,可以这样设置crontab * 19 * * * /usr/local/php/bin/php /var/www/test.php 此处表示调用php( ...
- Django模版进阶
# -*- coding: utf-8 -*-from django.shortcuts import renderdef home(request): string = "测试" ...
- python_day2_homework_1(简单购物商城)
'''简单购物商城(要求):1,商品展示,价格2,买,加入购物车3,付款,钱不够''' 1 #_*_ coding: utf-8 _*_ __author__ = 'A-rno' meu_list_1 ...
- 每日一“酷”之difflib
介绍:difflib 比较序列.该模块包含一些用来计算和处理序列直接差异的工具.她对于比较文本尤其用,其中包含的函数可以使用多种常用差异格式生成报告. 测试数据(splitlines()按行划分为序列 ...
- jQuery对象和DOM对象的互相转换【 转】
jQuery对象转换为dom对象 只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的 ...
- Sqlite: unable to open database file
A database connect, there updated both queries (different statement, and regardless of order), after ...
- awk中文手册
1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l awk 适于解决哪些问题 ? l awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模 ...
- using System.Threading.Tasks;
using System.Threading.Tasks; .Net并行库介绍——Task1
- lnmp停用nginx,改用apache
编译安装的lnmp环境 总是出现502错误,修改了各种配置也没用,暂时先放弃nginx,改用apache apache使用yum安装方式 需要注意的事项,将网站根目录的用户组改为 chown apac ...