Expect用法浅谈
1. Expect基础语法解释
1.1 cmd arg1 arg2 arg3
一条Tcl命令由空格分割的单词组成. 其中, 第一个单词是命令名称, 其余的是命令参数 .
1.2 $myVar $符号代表变量的值. 在本例中, 变量名称是myVar.
1.3 [cmd arg]
方括号执行了一个嵌套命令. 例如, 如果你想传递一个命令的结果作为另外一个命令的参数, 那么你使用这个符号 .
1.4 "some stuff" # "some stuff $myVar "
双引号把词组标记为命令的一个参数. "$"符号和方括号在双引号内仍被解释,意思是可以进行变量替换。
1.5 {some stuff}
大括号也把词组标记为命令的一个参数. 但是, 其他符号在大括号内不被解释. 1.6 \
反斜线符号是用来引用特殊符号. 例如:\n 代表换行. 反斜线符号也被用来关闭"$"符号 , 引号,方括号和大括号的特殊含义 .
基本语法:
1.设置变量值
set str "test"
set time="2016-05-24 16:02:34"
2. 输出一个变量的内容,使用puts
puts $str
3.字符串拼接
append命令 将某个字符串加到另外一个字符串的后面:
eg:append "Now is" $time "。" --//Now is 2016-05-24 16:02:34。
4.运算
使用expr命令作为计算符号,其用法类似C语言的+=和/= ,例如:
set j [expr $i/5]
TCL会自动选择整数或者浮点计算:
set i 10
expr $i /4.0 --//1.25
在TCL里面可以使用+ - * /和%作为基本运算符,另外通常还包括一些数学函数,如abs,sin,cos,exp和power(乘方)等等。 另外,还有一个起运算符作用的命令incr,它用来对变量加一:
set i 1
incr i --//i=2
5.流程控制
Tcl判断:分支语句可以使用if和switch实现。if语句的和C语言类似,如:
if { $ x < 0 } {
set y 10;
}else{
set y 0;
}
注意判断子句也需要使用花括号, 也可以使用else和elseif。
switch语句的用法有点类似这样:
switch $x {
0 { set y 10;}
10 { set y 100;}
20 { set y 1000;}
}
循环:主要由for,foreach和while构成,而且每一个都可以使用break和continue 子句。
for语句的格式:
for { set i 0} {$i< 10} { incr i} {
puts $i
}
如果用while循环,这个句子可以写成 :
while {$i < 10 } {
puts $i;
incr i;
}
foreach是对于集合中的每一个元素执行一次命令, 命令格式是 :
foreach [变量] { 集合 } { 语句; } 例如:
foreach j { 1 3 5} {
put $j;
} --//1 3 5
6. 函数
Tcl里面也可以定义函数,这是通过proc命令实现的:
proc my_proc {i}{
puts $i;
}
这样就定义了一个名字叫proc的函数,它只是在终端显示输入变元的内容。 上述函数的使用方式如下:
my_proc { 5 } --// 5
如果变元的数目是0,只要使用空的变元列表,例如 proc my_proc {} {语句;}
//OTHER///
1)spawn语句在expect脚本中用于启动一个新的进程,在我们的程序中,spawn sftp 192.168.1.1 就是去执行sftp程序,其他的就是expect和send的指令对了。
2)缺省下,expect在标准输出来输出所有来自应用程序的回应信息,你可以用下面的两个命令重定向这些信息:
log_file [日志输出文件名]
解释:这个命令让expect在你设置的文件中记录输出信息。必须注意,这个选项并不影响控制台输出信息,但如果你通过crond设置expect脚本定时运行的话,该命令就显得尤为重要和方便。
Expect用法浅谈相关推荐
- 【转载】DataKeyNames,DataKeys 用法浅谈
原文地址:http://www.cnblogs.com/amos/archive/2010/07/16/1778796.html DataKeyNames作为GridView中的一个属性,我们可以利用 ...
- bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率
公司财务课程,魏教授讲得非常棒,治愈了大家的瞌睡,激起了大家的学习热情.我一直认为,大牛在讲课,吹牛还是演讲中,都能够给现场观众提供强大的能量,使得彼此运行在同一个共振频率. 内部收益率(Intern ...
- 浅谈Linux中ldconfig和ldd的用法
ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...
- python竞赛_浅谈Python在信息学竞赛中的运用及Python的基本用法
浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...
- php字面量,浅谈js之字面量、对象字面量的访问、关键字in的用法
一:字面量含义 字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量. 字面量分为字符串字面量(string literal ).数组字面量(array literal) ...
- 浅谈verilog hdl中parameter的用法
浅谈verilog hdl中parameter的用法 parameter 1.parameter参数使用 事例1: 事例2: 事例3 事例4 2.defparam使用 事例5 3.parameter与 ...
- css inport作用,浅谈css和@import区别及用法详解
下面小编就为大家带来一篇浅谈css和@import区别及用法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 css和@import都是调用外部样式表的方法. 一.用法 ...
- 浅谈C++中memset函数的用法
浅谈C++中memset函数的用法 memset函数的头文件是cstring, 实际上是一个字符串处理函数,但常用于给静态数组(不是new出来的数组)赋特定初值. #include<cstrin ...
- float在html语言中的用法,[html5入门-4]浅谈html5中float的用法
html5的文档布局方式一般有流式布局,浮动布局,固定布局和弹性布局等几种方式,本文主要浅谈一下浮动布局在html5中的用法. 一.float定义 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框 ...
最新文章
- python max()_Python Decimal max()用法及代码示例
- linux存储--文件描述符fd与FILE结构体(二)
- Python字符串前加f、r、b、u的不同用法
- 不同php怎么传递参数,php – 将所有参数传递给另一个函数
- traceroute和mtr
- element-ui table多选CheckBox参数解析
- mysql connections
- 偶极子阵列天线(带反射板)+单层天线罩
- 通过有限差分和matlab矩阵运算直接求解一维薛定谔方程,通过有限差分和MATLAB矩阵运算直接求解一维薛定谔方程...
- windows server 2008 r2 设置显示文件后缀名
- Improved Robustness to Open Set Inputs viaTempered Mixup
- linux目录复制 cp: omitting directory
- java 运行不出来的原因_小议Java程序不能运行的几种原因
- 服务器定时发送qq消息,python实现定时发送qq消息.pdf
- 银联支付更换正式环境后报错存在风险而关闭了订单
- 如何靠3D建模月入2W+?
- 仅存放常用的工具类,自用
- c语言编程存款问题,c程序问题输入存款金额money存期yea...
- 学习总结《反本能---如何对抗你的习以为常》
- 【CXY】JAVA基础 之 Collections
热门文章
- 复现 MMDetection
- 【KNN】使用KNN算法实现对iris数据集的分类
- MATLAB实现k近邻学习(Iris数据集)
- 【windows】实战部署二(使用)SVNserver服务端+SVNclient客户端
- ORAN专题系列-21:5G协议栈功能切分选项与O-RAN白盒化
- 计算机管理系统包括啥,供应链管理系统包括哪些模块
- php excel 转数组函数,php读取Excel中内容到数组
- 基于Python(Django)+MySQL实现(Web)大学生信用评价系统分析与设计【100010400】
- 车牌识别系统论文python_毕业设计 python opencv实现车牌识别 界面
- GIF’ted 1.3 GIF动画制作工具