[TOC]
## 输出到终端,尽量使用双引号
```
puts "hello,world"
```
## 多行注释
```
if 0 {
这是第一次使用tcl
}
puts "上面是多行注释"
```
## 查看版本号
```
puts "version:$tcl_version"
```
## 环境路径
```
puts "环境路径$env(PATH)"
```
## tcl启动文件
```
puts "启动文件:$tcl_rcFileName"
```
## 数学计算 Tcl默认精度为12位 可以使用tcl_precision特殊变量改变精度
```
puts [expr 1 + 1 + 5]
```
## 变量,字符串(list)
```
set var 24
set str {mstring a b c}
puts "$var:[lindex $str 1]"
```
## 关联数组(如同哈希表)
```
set marks(english) 80
puts english:$marks(english)
set marks(mathematics) 90
puts mathematics:$marks(mathematics)
```
## 动态类型,数据类型自动转换
```
if 0 {
TCL是一种动态类型语言。
变量的值可以在需要时被动态地转换为所需的类型。
例如,一个数字5,其被存储为字符串将做的算术运算时被转换为数字。
}
set variableA "10"
puts $variableA
set sum [expr $variableA +20];
puts $sum
```
## tcl的运算符和c语言基本一样 只有一些细微差别
```
set a 21
set b 10
set c [expr $a + $b]
puts "Line 1 - Value of c is $c\n"
set c [expr $a - $b]
puts "Line 2 - Value of c is $c\n"
set c [expr $a * $b]
puts "Line 3 - Value of c is $c\n"
set c [expr $a / $b]
puts "Line 4 - Value of c is $c\n"
set c [expr $a % $b]
puts "Line 5 - Value of c is $c\n"
```
### 注意else的位置和条件是用大括号括起来的
```
if {10 > 5} {
puts "a大于c"
} else {
puts "a不大于c"
}
if {!10 || 5} {
puts "true"
} else {
puts "false"
}
set d [expr 2>3?2 : 3]
puts $d
set a 100
#check the boolean condition
if { $a == 10 } {
# if condition is true then print the following
puts "Value of a is 10"
} elseif { $a == 20 } {
# if else if condition is true
puts "Value of a is 20"
} elseif { $a == 30 } {
# if else if condition is true
puts "Value of a is 30"
} else {
# if none of the conditions is true
puts "None of the values is matching"
}
puts "Exact value of a is: $a"
```
## case语句 注意空格
```
set grade 2
switch $grade {
1 {
puts "grade=1"
}
2 {
puts "grade=2"
}
3 {
puts "grade=3"
}
default {
puts "grade=10"
}
}
```
## for 循环
```
for { set a 10} {$a < 20} {incr a} {
puts "value of a: $a"
}
```
## 数组
```
set languages(0) Tcl
set languages(1) "C Language"
puts $languages(0)
puts $languages(1)
puts [array size languages]
```
## 函数
```
proc helloWorld {} {
puts "Hello, World!"
}
helloWorld
proc add {a b} {
return [expr $a+$b]
}
puts [add 10 30]
```
## 文件操作
```
set myfile [open "t.txt" w+]
puts $myfile "我好细化你"
puts $myfile "超级大保健"
close $myfile
set fp [open "t.txt" r]
set file_data [read $fp]
puts $file_data
close $fp
```
[基础教程](https://www.yiibai.com/tcl/tcl_regular_expressions.html#article-start)
- 第1章 电脑操作篇
- 1.1 电脑高清壁纸下载地址
- 1.2 音乐外链在线获取
- 1.3 markdown,js等表格生成神器
- 1.4 在线使用文档,表格,演示文档
- 1.5 开发在线工具
- 1.5.1 toolbox
- 1.5.2 菜鸟工具
- 1.6 vs code远程调试
- 1.7 windows批处理命令
- 1.8 windows安装cygwin运行linux指令
- 1.9 windows下某些程序运行慢
- 1.10 win下为鼠标右键添加新项目
- 1.11 win上自己常用的开发软件
- 1.12 win下vscode配置
- 第2章 Electron 用前端技术开发跨平台桌面应用
- 2.1 介绍
- 2.2 入门链接地址
- 2.3 cnpm使用
- 第3章 Git使用
- 3.1 介绍
- 3.2 同步GitHub的基本使用方法
- 3.3 同步Gitee的基本使用方法
- 3.4 获取当前git分支
- 3.5 LF和CRLF换行的转换
- 第4章 HTML,CSS,JS
- 4.1 HTML速查列表
- 第5章 python使用
- 5.1 文件操作
- 5.2 一句话建立服务器
- 第6章 我的女友叫Linux
- 6.1 使用shell写俄罗斯方块
- 6.2 那些有趣的shell
- 6.2.1 40个有趣的LInux命令行
- 6.2.2 命令行下的网易云搜索播放器
- 6.2.3 从网上获取一条语句并显示
- 6.3 在linux上写汇编
- 6.4 在linux终端连接另一台linux
- 6.5 makefile文件的编写
- 6.6 deepin挂载远程文件夹到本地文件夹
- 6.7 本地lnux和远程linux进行文件拷贝
- 6.8 超好用的linux下的ssh管理工具(electerm)
- 6.9 那些不重要的技巧
- 6.10 linux文件加密
- 6.11 论文画图软件gnuplot
- 6.12 自定义mrun命令用于执行当前路径下的run文件
- 6.13 fish shell后台运行程序
- 第7章 在线工具收集
- 7.1 各种编程语言的在线编辑运行
- 7.2 html js 在线尝试
- 第8章 搭建自己的私有云盘
- 第9章 linux下的一些软件
- 9.1 remarkable--markdown文件轻量编辑器
- 9.2 gnuplot画图软件
- 9.3 Graphviz绘图(流程图,状态图)
- 第10章 TCL脚本编程
- 10.1 基础教程
- 10.2 在tcl脚本文件其他tcl脚本文件运行
- 10.3 在tcl脚本文件中调用bash/fish
- 10.4 TCL培训教程
- 10.5 tcl脚本参数传递
- 第11章 看云的使用
- 11.1 markdown添加公式
- 11.2 看云在linux本地编辑脚本
- 第12章 Go语言在linux下的使用
- 12.1 简介
- 12.2 调用自己的包
- 12.3 Go语言学习的资料
- 12.4 golang使用flag完成命令行解析
- 12.5 Golang文件操作大全
- 12.5.1 创建空文件
- 12.5.2 Truncate文件
- 12.5.3 得到文件信息
- 12.5.4 重命名和移动
- 12.5.5 删除文件
- 12.5.6 打开和关闭文件
- 12.5.7 检查文件是否存在
- 12.5.8 检查读写权限
- 12.5.9 改变权限、拥有者、时间戳
- 12.5.10 硬链接和软链接
- 12.5.11 复制文件
- 12.5.12 跳转到文件指定位置(Seek)
- 12.5.13 写文件
- 12.5.14 快写文件
- 12.5.15 使用缓存写
- 12.5.16 读取最多N个字节
- 12.5.17 文件追加内容
- 12.6 操作CSV文件
- 第13章 搜集资源的一些方法
- 13.1 电子书_电子课本
- 第14章 EndNote的使用
- 14.1 安装
- 14.2 文件检索