[Shell] expect基本语法快速入门

expect类似tcl,简要总结如下

 

 

1.输出hello world

expect1.1> puts "hello"
hello

 

2.变量
特殊变量 描述
argc 指命令行参数的个数。
argv 指包含命令行参数的列表。
argv0 是指被解释的文件或由调用脚本的名称的文件名。

#!/usr/bin/expect
puts "argv0: $argv0"
puts "argc: :$argc"
puts "argv All :$argv"
puts "argv1: [lindex $argv 0]"

运行后 ./expect_args.sh
[hadoop@HMASTER shellTest]$ ./expect_args.sh a b c
argv0: ./expect_args.sh
argc: : 3
argv All :a b c
argv1: a

 

3.操作符
1> []用于计算方括号中的脚本,示例

expect1.4> puts [expr 2*3]
6

2>set 用于设置变量并赋值,puts用于输出

expect1.5> set a 10
10
expect1.6> puts $a
10

 

4.转义, \用于特殊字符转义

expect1.7> puts "A\nB"
A
B

 

5.数据结构 列表/数组List

expect1.9> puts [lindex $A 1]
b
expect1.10> set A "a b c"
a b c
expect1.11> puts [lindex $A 2]
c

 

7.循环for each,while,
1>for each 示例,要注意 a b c }与{puts中间的空格

expect1.15> foreach i {a b c } {puts $i}
a
b
c

2>while示例,要注意 1}与{puts中间的空格

expect1.7>while {1} {puts "loop forever: hello,u"}
loop forever: hello,u
loop forever: hello,u
等等,以及
expect1.7> set a 1
1
expect1.8> while {$a < 5} { set a [expr $a+1]
puts $a}
+> 2
3
4
5

 

8.spawn 进程交互

 

9.expect,send 执行命令

 

10.interact切换手动

分类上一篇:     分类下一篇:

Leave a Reply