linux expect 字符串,linux expect语言脚本的学习

1、头部第一行必须是这个#!/usr/bin/expect #####定义了是什么脚本器

2、接收参数set name [lindex $argv 0]

set name2 [lindex $argv 1]

puts $argvc

puts $argv0

expect eof

exit

#set 赋值参数的意思

#name 参数名,设置时不需要加任何符号,后面对该参数的调用时需要加$符号,$name

#[lindex $argv 0] 参数写法就是这样,0表示第一个参数

#puts 输出字符串

#$argvc 参数数量

#$argv0 文件名

#最后是等待标示子进程已结束的标示符eof,然后退出。(注:这个等待eof必须要有,如果没有eof,很可能在子进程没有结束前就退出,造成问题。)

#执行的格式

./test.exp 参数0 参数1

3、执行命令set timeout 5

spawn ssh test@172...

expect "*password*"

send “my_password\r”

interact

#这几句一般都一起用

#set timeout 是设置过期时间,例如spawn执行的shell语句如果超时了,没有匹配到expect的字符串,就会继续执行下一个语句

#spawn 执行shell命令,会fork出一个子进程执行

#expect 执行完shell命令之后期望接受的字符串,支持正则匹配

#send 表示输入,记得要写\r,回车让程序执行

#想象一下平时自己用ssh远程登录服务器就能理解什么意思了,输入完ip地址之后,都需要手动输入密码,用expect可以自动完成

##interact,执行完之后子进程把用户权交回给用户,会定位到当前子进程中,例如你执行完远程登录,就肯定是停留在远程的服务器里

4、其他语法格式##switch

set color [lindex $argv 0]

switch $color {

apple {

puts "apple is blue"

}

banana {

puts "banana is yellow "

}

}

##if

if { "$test" == "apple" } {

puts "$test"

} else {

puts "not apple"

}

##for

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

puts "$i"

}

##while

while {$i<4} {

puts "$i"

incr i

}

##定义函数

proc test {} {

puts "ok"

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值