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用法浅谈相关推荐

  1. 【转载】DataKeyNames,DataKeys 用法浅谈

    原文地址:http://www.cnblogs.com/amos/archive/2010/07/16/1778796.html DataKeyNames作为GridView中的一个属性,我们可以利用 ...

  2. bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率

    公司财务课程,魏教授讲得非常棒,治愈了大家的瞌睡,激起了大家的学习热情.我一直认为,大牛在讲课,吹牛还是演讲中,都能够给现场观众提供强大的能量,使得彼此运行在同一个共振频率. 内部收益率(Intern ...

  3. 浅谈Linux中ldconfig和ldd的用法

    ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...

  4. python竞赛_浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  5. php字面量,浅谈js之字面量、对象字面量的访问、关键字in的用法

    一:字面量含义 字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量. 字面量分为字符串字面量(string literal ).数组字面量(array literal) ...

  6. 浅谈verilog hdl中parameter的用法

    浅谈verilog hdl中parameter的用法 parameter 1.parameter参数使用 事例1: 事例2: 事例3 事例4 2.defparam使用 事例5 3.parameter与 ...

  7. css inport作用,浅谈css和@import区别及用法详解

    下面小编就为大家带来一篇浅谈css和@import区别及用法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 css和@import都是调用外部样式表的方法. 一.用法 ...

  8. 浅谈C++中memset函数的用法

    浅谈C++中memset函数的用法 memset函数的头文件是cstring, 实际上是一个字符串处理函数,但常用于给静态数组(不是new出来的数组)赋特定初值. #include<cstrin ...

  9. float在html语言中的用法,[html5入门-4]浅谈html5中float的用法

    html5的文档布局方式一般有流式布局,浮动布局,固定布局和弹性布局等几种方式,本文主要浅谈一下浮动布局在html5中的用法. 一.float定义 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框 ...

最新文章

  1. python max()_Python Decimal max()用法及代码示例
  2. linux存储--文件描述符fd与FILE结构体(二)
  3. Python字符串前加f、r、b、u的不同用法
  4. 不同php怎么传递参数,php – 将所有参数传递给另一个函数
  5. traceroute和mtr
  6. element-ui table多选CheckBox参数解析
  7. mysql connections
  8. 偶极子阵列天线(带反射板)+单层天线罩
  9. 通过有限差分和matlab矩阵运算直接求解一维薛定谔方程,通过有限差分和MATLAB矩阵运算直接求解一维薛定谔方程...
  10. windows server 2008 r2 设置显示文件后缀名
  11. Improved Robustness to Open Set Inputs viaTempered Mixup
  12. linux目录复制 cp: omitting directory
  13. java 运行不出来的原因_小议Java程序不能运行的几种原因
  14. 服务器定时发送qq消息,python实现定时发送qq消息.pdf
  15. 银联支付更换正式环境后报错存在风险而关闭了订单
  16. 如何靠3D建模月入2W+?
  17. 仅存放常用的工具类,自用
  18. c语言编程存款问题,c程序问题输入存款金额money存期yea...
  19. 学习总结《反本能---如何对抗你的习以为常》
  20. 【CXY】JAVA基础 之 Collections

热门文章

  1. 复现 MMDetection
  2. 【KNN】使用KNN算法实现对iris数据集的分类
  3. MATLAB实现k近邻学习(Iris数据集)
  4. 【windows】实战部署二(使用)SVNserver服务端+SVNclient客户端
  5. ORAN专题系列-21:5G协议栈功能切分选项与O-RAN白盒化
  6. 计算机管理系统包括啥,供应链管理系统包括哪些模块
  7. php excel 转数组函数,php读取Excel中内容到数组
  8. 基于Python(Django)+MySQL实现(Web)大学生信用评价系统分析与设计【100010400】
  9. 车牌识别系统论文python_毕业设计 python opencv实现车牌识别 界面
  10. GIF’ted 1.3 GIF动画制作工具