博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接触expect、tcl语言
阅读量:6798 次
发布时间:2019-06-26

本文共 1279 字,大约阅读时间需要 4 分钟。

接触expect、tcl语言

需求:telnet登陆到远端设备,并且根据不同的反馈情况执行一系列命令,我是用expect来实现的。

expect是从tcl(Tool Command Language)语言发展来的,tcl语言则应用在测试自动化等领域。实际上用到expect的地方并不多,反而是要花一些时间去学习tcl语言。
tcl语言类似shell,但是开发的时候还是有很多东西要适应的,比如没有圆括号,方括号作为表达式等等。
linux系统中一般已经安装了tcl语言运行环境,终端中输入tclsh即进入。

% set a "Hello World!"Hello World!% puts $aHello World!

set用于注册变量,puts用来输出变量。
有一点需要注意,tcl语言默认把所有输入都当作字符串,例如

% set x 10+1010+10

先看一小段代码:

% set str "This is a example!"This is a example!% string first "is" $str2% string first "is" $str 35% set loc [string first "is" $str 3]5% string index $str $loci% string range $str $loc [expr $loc+2]is

这段代码里出现了常用的几个字符串函数first、index、range。first命令用于返回字符串第一次出现的位置,如果没有找到,会返回-1,当然可以设置跳过前面的n个字符开始搜索。range用于获取一段范围内的字符串,和很多脚本语言里的substr差不多,这里要指出的是最后一个参数不能省略。index用于获取字符串第n个位置的字符。
“[]”方括号是tcl语言的一个特性,有点类似于一些脚本语言的eval()函数,叫做命令置换。实际上tcl语言有eval命令,这个大家有需要再详细摸索。“[]”中必须是完整的表达式,长度不限,可以嵌套使用,它的值是最后一个命令的返回值。这里要特别指出,“[]”用做字符串,必须转义。
expr是tcl的一个命令,可以有一个或者多个参数,把所有的参数组合到一起作为一个表达式来求值。
tcl语言有很强大的字符串函数,这里只是简单介绍两个我用到的,此外还有正则表达式等等。
tcl语言不像其他的脚本语言那样有广大的用户群,参考资料不多,这里推荐一个,感兴趣的朋友可以去看看。
附:tcl常用函数
变量和过程:global, proc, return, set
控制:break, case, continue, eval, for, foreach, if
杂项:catch, error, info, time
调用子进程:exec
文件:file, glob, print, source
操纵:format, scan, string
表达式:expr
字符串:concat, index, length, list, range

转载地址:http://rkrgo.baihongyu.com/

你可能感兴趣的文章
CompletableFuture 的同步与异步
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
用代码块实现一个迭代器
查看>>
数列 COGS1048:[Citric S2] 一道防AK好题
查看>>
kafka
查看>>
(二)SpringMVC学习笔记-HelloWorld
查看>>
Centos 6.5下安装升级Python3.3.5
查看>>
MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
查看>>
MyBatis学习总结(五)——实现关联表查询
查看>>
Spring MVC常用注解说明
查看>>
CentOS 6.3 Mysql+heartbeat+drbd+LVS 的安装和配置(2)
查看>>
iscroll
查看>>
resin+Apache 整合安装JSP论坛
查看>>
jquery prop()和attr()方法 (总结笔记)
查看>>
Windows蓝屏了怎么办?
查看>>
Ubuntu/Linux常用命令
查看>>
Linux下虚拟内存不足怎么办,如何快速增加swap分区
查看>>
如何下载被标记为不安全的文件?
查看>>
Python3.5 图像处理 Pillow 库 CentOS 6.5 安装
查看>>