1 Tcl基本知识

1.1 Tcl是什么?

  • Tcl全称是Tool Command Language,是一种基于字符串的命令语言。
  • Tcl是一种解释性语言,类似于其他脚本语言一样,直接对每条语句顺次解释执行。
  • Tcl数据类型简单,对于Tcl来说,它要处理的数据结构只有字符串。Tcl将变量以字符串的形式进行存储。
  • Tcl的执行是交互式的,Tcl提供了交互式命令界面,tclsh和wish。tclsh只支持Tcl命令,wish支持Tcl和Tk命令。通过交互界面,可以像shell命令一样,逐条执行,并即时得到
  • Tcl/Tk与C/C++有良好的兼容性。Tcl/Tk脚本可以很好的集成到C/C++程序中

1.2 Linux执行Tcl脚本

  1. 脚本的第一行制定tcl脚本解释器
#!/usr/bin/tcsh
  1. 确保脚本可执行
chmod +x test.tcl
  1. 执行脚本
./test.tcl

1.3 Tcl命令格式

command arg1 arg2......
(命令 参数1 参数2)......
  • command是Tcl内建命令或者是Tcl过程。
  • 多条命令可以放在一行或者是多行,每条命令使用“;”进行分隔。
command1 arg1......;command2 arg2......
  • tcl中注释是以#进行表示的

    以下输出命令会在终端输出一段字符串:
puts "The next line contains an error"

# result
The next line contains an error
  • 如果字符串有空格的话,要使用“”或者是{}括起来。因为tcl中命令与参数之间是以空格进行分隔的。不同{}或者是“”括起来,容易发生错位。
{字符串}
“字符串”

1.4 Tcl脚本文件和source命令

处理在命令行窗口进行交互式的执行tcl命令之外,还可以将tcl命令放到一个后缀名为.tcl的脚本文件中,然后用Tcl的命令source进行执行。

source fileName

source命令从文件中读取Tcl命令来计算。

# el.tcl文件内容
puts "hello" # 执行脚本文件
source el.tcl # result
hello

1.5 可执行脚本文件(Executable File)

编写完tcl脚本文件中,可用source命令来运行该脚本。但是需要先启动tclsh。如果想要将tcl执行在当前shell,比如Unix和Linux的shell中,能够自动进行启动tclsh就会十分方便。所以在写脚本的时候可以将脚本写成可执行脚本。

编写可执行脚本文件,必须有Tcl启动脚本,进行调用tcl解释器以及完成初始化必要的变量。每个平台都有自己的启动脚本

  1. 在UNIX中,最普遍的编写可执行应用程序的方式是用“#!”机制。用它生成的启动脚本
#!/usr/bin/wish -f

这个启动脚本告诉Shell,用wish来执行剩余的脚本,用-f是支持3.6以下的Tk版本脚本。这种启动脚本需要提供wish或tclsh的绝对路径名,不利于移植于不同的机器上。因为不同的机器上,wish和tclsh的路径可能会有所不同。

在用PATH和LD_LIBRARY_PATH制定wish/tclsh及其库的情况下,可以编写下面格式的启动脚本:

#!/bin/sh
# the next line restarts using wish \
exec wish8.0 "$0" "$@"

上面的脚本最后会将wish应用程序安装到用户目录下。第二行的\对于UNIX sh来说被认为是注释的一部分,但是对于tcl脚本来说,\表示下一行是注释的继续。

# 运行tcl脚本
./xxx.tcl

1.6 #!的解释

#!/bash/sh
  • 表示使用/bin/sh来解释执行脚本。#!表示特殊表示符,其后面跟的是解释此脚本的shell路径。
  • shell种类有很多:bash\csh\sh....
  • sh是shell中的一种,命令文件所在路径/bin/sh或者/usr/bin/sh
  • 还可以用其他脚本语言进行编程比如:/bin/csh、/bin/per、/bin/awk、/bin/sed、/bin/python、/bin/echo等。
  • 查看系统支持的shell
cat /etc/shells
  • 查看tcl安装路径
which tcl

01-Tcl基本知识的更多相关文章

  1. SSAS系列——【01】准备知识

    原文:SSAS系列--[01]准备知识 关于SQL Server 产品,我从2004年就开始使用了,SQL Server 2K,2K5,2K8,到如今已经准6年了,说来惭愧,这六年来所涉及的内容都是在 ...

  2. Spring笔记01(基础知识)

    1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现“一站式”的企业应用开发 ...

  3. 【java基础】01 计算机基础知识

    一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...

  4. 01.Net入门知识

    1..Net学习路线及几个容易混淆的概念 .Net只是一个平台,提供运行.Net程序需要的虚拟机.类库等 C#就是.Net平台下的一个开发语言,.Net下的语言还有VB.Net.PowerShell等 ...

  5. 01.python基础知识_01

    一.编译型语言和解释型语言的区别是什么? 1.编译型语言将源程序全部编译成机器码,并把结果保存为二进制文件.运行时,直接使用编译好的文件即可 2.解释型语言只在执行程序时,才一条一条的解释成机器语言给 ...

  6. python笔记01:基础知识

    1.4 数字和表达式 # -*- coding:utf-8 -*- #1.4 #除法 print 1 / 2 print 1.0 / 2 print 10 / 3 print 10.0 / 3.0 p ...

  7. 01 Django基础知识

    相关概念 软件框架 一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来. 一个软件框架是由其中各个软件模块组成的,每一个模块都有特定的功能 ...

  8. SpringCloud入门01之基础知识

    一.Spring Cloud 什么是spring cloud, 为什么要使用微服务架构? 参考度娘 Spring Cloud是一系列框架的有序集合, 它利用Spring Boot的开发便利性巧妙地简化 ...

  9. 01.UNIX基础知识

    1.UNIX体系结构 什么叫做内核? 内核是一种软件,它控制计算机硬件资源,并提供程序的运行环境. 什么叫操作系统? 在广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,如可以 ...

  10. python其他知识目录

    博客目录总纲首页 基础的重要性(程序员之路) 做一个“合格”的程序员(一)——基础能力 作为一个程序员,数学对你到底有多重要 同样是程序员,为什么别人比你更优秀? ------------------ ...

随机推荐

  1. 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实

    2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...

  2. 齐博x1内容页中下一页上一页的标签

    在模板中分别插入如下代码即可 前一页 {:fun('content@prev',$info,20)} 后一页 {:fun('content@next',$info,20)} 复制 其中20代表取标题多 ...

  3. python字典推导&&列表推导&&输出随机数

    字典推导: x = ['A', 'B', 'C', 'D'] y = ['Alice', 'Bob', 'Cecil', 'David'] print({i:j for i,j in zip(x,y) ...

  4. ISCTF2022WP

    ISCTF2022改名叫套CTF吧(bushi),博主菜鸡一个,套题太多,挑一些题写下wp,勿喷. MISC 可爱的emoji   下载下来是个加密压缩包,根据hint掩码爆破密码 得到密码:KEYI ...

  5. Pycharm系列---QT配置

    PYSIDE2 添加外部工具 file---settings External Tools,点击左上角的 加号+ designer 位置: envs\QT6\Lib\site-packages\PyS ...

  6. mybatis的映射

    //一对一 <resultMap id="给resultMap取的id名" type="类名"> <result property=" ...

  7. EdgeCore初学习

    ### 前提 初学edgeCore,有不足之处,欢迎指正 ### 大纲 1. 日志查看2. 重启3. 在线编译4. sftp同步代码5. 整体架构6. 通信协议7. 模拟实现(待实现) ### 步骤 ...

  8. Android开发之应用更新或软件下载

    Android开发之应用更新或软件下载 本文章学习前提:okHttp3或以上,EventBus或其它事件总线工具,四大组件的Activity和Service,安卓通知基础知识 新建项目文件 目录结构如 ...

  9. npm卸载"Tracker idealTree already exists"

    问题 使用npm卸载babel插件的时候执行命令npm uninstall babel...出现如下报错 npm ERR! Tracker "idealTree" already ...

  10. ArcGISServer 10.4 虚拟机 安装 新建站点失败 Failed to configure the server machine ''. Server machine '' is not a local

    在通过 VMware  创建的虚拟机上(win7 64位)安装ArcServer 10.4,新建站点时出现下面的错误. Failed to configure the server machine ' ...