ZKX's LAB

如何在expect脚本中调用系统命令

2020-10-12知识10

如何用expect写一个自动登录脚本 1.安装expect需要先安装tcl:apt-get install tclapt-get install expect2.expect使用2.1一个简单的输入密码操作usr/bin/expectset timeout 100set password\"123456spawn sudo rm-rf zzlogicexpect\"root123456send\"$password\\ninteract说明:第一行#!usr/bin/expect表示使用expect的shell交互模式set是对变量password赋值set timeout 100:设置超时时间为100秒,如果要执行的shell命令636f7079e799bee5baa631333363366232很长可以设置超时时间长一些。expect超过超时时间没有监测到要找的字符串,则不执行,默认timeout为10秒spawn在expect下执行shell脚本expect对通过spawn执行的shell脚本的返回进行判断,是否包含“”中的字段send:如果expect监测到了包含的字符串,将输入send中的内容,\\n相当于回车interact:退出expect返回终端,可以继续输入,否则将一直在expect不能退出到终端2.2expect的命令行参数[lindex$argv n]获得index为n的参数(index从0开始计算)argc为命令行参数的个数[lrange$argv 0 0]表示第一个参数[lrange$argv 0 3]表示第1到第3个参数例如scp_service.sh文件,可以./scp_service.sh-rm来执行,这时是赋值了一个。

如何在expect脚本中调用系统命令

expect脚本在Linux下是如何使用的 如果你是expect脚本语言的新手,可以首先从我们的expect的“hello world”样例(英文)开始。1,使用“-c”选项,从命令行执行expect脚本expect可以让你使用“-c”选项,直接在命令行中执行它,如下所示:expect-c 'expect\"\\n\"{send\"pressed enter\\n\"}pressed enter如果你执行了上面的脚本,它会等待输入换行符(\\n)。按“enter”键以后,它会打印出“pressed enter”这个消息,然后退出。2,使用“-i”选项交互地执行expect脚本使用“-i”选项,可以通过来自于标准输入的读命令来交互地执行expect脚本。如下所示:expect-i arg1 arg2 arg3expect1.1>;set argvarg1 arg2 arg3expect1.2>;正常情况下,当你执行上面的expect命令的时候(没有“-i”选项),它会把arg1当成脚本的文件名,所以“-i”选项可以让脚本把多个参数当成一个连续的列表。当你执行带有“-c”选项的expect脚本的时候,这个选项是十分有用的。因为默认情况下,expect是交互地执行的。3,当执行expect脚本的时候,输出调试信息当你用“-d”选项执行代码的时候,你可以输出诊断的信息。如下所示:cat sample.expusr/bin/expect-fexpect\"\\n;send\"pressed enter;expect-d sample.exp。

如何在expect脚本中调用系统命令

关于linux expect脚本的问题,自动输入密码 usr/bin/expect set time 30 set passwd xxxxx(xxxx是你的密码内容)spawn sudo expect\"Password:\"引号里是你手动执行sudo时候。系统返回给你的提示,可以只匹配最后几个。

如何在expect脚本中调用系统命令

#expect#linux脚本#ssh

随机阅读

qrcode
访问手机版