expect脚本如何给参数

 时间:2026-02-12 08:44:06

1、比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递

expect脚本如何给参数

2、ssh.exp    Python代码  #!/usr/bin/expect  set timeout 10  set username [lindex $argv 0]  set password [lindex $argv 1]  set hostname [lindex $argv 2]  spawn ssh-copy-id -i .ssh/id_rsa.pub $username@$hostname  expect "yes/no"  send "yes\r"  expect "password:"  send "$password\r"    expect eof    执行脚本./ssh.exp root pasword hostname1    

expect脚本如何给参数

3、expect接收参数的方式和bash脚本的方式不太一样,bash是通过$0 ... $n 这种方式,而expect是通过set <变量名称> [lindex $argv <param index>],例如set username [lindex $argv 0]

expect脚本如何给参数

4、其中expect为expect脚本解释器,因此你的电脑上必须安装expect;script.exp为脚本文件;argv1,argv2为传递到脚本文件的参数。

#!/usr/bin/expect

for {set i 0} {$i < $argc} {incr i} {

puts "arg $i: [lindex $argv $i]"

}

[yellia .script]$ ./echo.exp 11 22 33

执行结果为:

arg 0: 11

arg 1: 22

arg 2: 33

如果你想获得当前执行脚本的名称,那么可以访问argv0

expect脚本如何给参数

5、获取函数的参数

expect 和shell一样提供了很多command,并且expect的大多数功能都是以command的方式实现的,例如控制结构(if/for/while/switch)。函数的功能是通过proc命令提供的。

proc printParam {name sex} {

puts "name: $name"

puts "sex: $sex"

}

调用时必须传递对应个数的参数,否则会报错。

expect脚本如何给参数

  • 如何做好地产项目的进度控制
  • 云南旅游景点介绍
  • 如何起步学英语
  • 肠胃不好吃什么调理?
  • 超实用的西点烘焙技巧
  • 热门搜索
    我的世界打不开怎么办 怎么能让皮肤变白 乘号怎么输入 睡眠不好该怎么办 痤疮怎么消除 辽宁师范大学怎么样 耳膜穿孔怎么办 电脑屏幕怎么调暗 taste怎么读 怎么做幻灯片