网龙网络公司校园招聘,百度排名优化,中小学 网站建设 通知,wordpress网站搬家教程目录
一.Here Document
1.1.定义
1.2.多行重定向
二.expect实现免交互
2.1.基础免交互改密码
2.2.expect定义
2.3.expect基本命令
2.4.expect实现免交互ssh主机 一.Here Document
1.1.定义 使用I/O重定向的方式将命令列表提供给交互式程序#xff0c;是标准输 入的一…目录
一.Here Document
1.1.定义
1.2.多行重定向
二.expect实现免交互
2.1.基础免交互改密码
2.2.expect定义
2.3.expect基本命令
2.4.expect实现免交互ssh主机 一.Here Document
1.1.定义 使用I/O重定向的方式将命令列表提供给交互式程序是标准输 入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息而是直接就地 生产出一个文件并用作命令的标准输入Here Document 可以与非交互式程序和命令一起使用 1.2.多行重定向 格式命令 开始标记符(通常为EOF) 输入内容 ... 结束标记符(与开始标记符一样前后不得有任何内容包括空格) 例子 cat EOF ll.txt 123 abc EOF 补充命令tee等于多行重定向 EOF 使用方法tee [选项] 文件名 [选项] -a 内容追加到给定的文件而非覆盖 举例tee ll.txt1 #输入内容11 #按回车会打印一次2 #输入内容22 #按回车会打印一次ctrl c 结束cat ll.txt内容为12
二.expect实现免交互
2.1.基础免交互改密码 1echo 1234abcd |passwd --stdin lgd #将1234abcd通过标准输入传给passwd命令改lgd用户密码 2passwd lgd EOF #passwd多行重定向输入密码给李狗蛋 1234abcd 1234abcd EOF 2.2.expect定义 建立在tcltool command language语言基础上的一个工具常被用于进行自动化控制和测试解决shell脚本中交互的相关问题使用前需要安装(yum install -y expect)。 2.3.expect基本命令 ①脚本解释器expect 脚本中首先引入文件表明使用的是哪一种shell。expect的为/usr/bin/expect ②spawn命令用于捕捉关键词后面常跟一个linux执行命令。 ③expect命令用于判断上层捕捉输出的结果是否有指定字符有则立即返回没有则默认等待10s。 ④exp_continue命令expect多分支判断时使用。注意使用exp_continue时如果跟踪像passwd这样输入密码后就结束进程的命令expect {}外不要加上expect eof 因为spawn进程结束后悔默认向expect 发送eof会导致后面的expect eof执行报错。 ⑤send命令expect命令判断完成需要返回时发送需要交互的指令想要传递给电脑的文字或字符该命令不能自动回车换行\n和\r是回车。 ⑥set命令可用于设置变量、设置expect超时时间默认是10s。 ⑦set设置位置变量set password [lindex $argv 0] 设置时从0开始执行脚本时在脚本后跟参数即可。 ⑧结束符(1) expect eof 结束并返回原来环境原来主机。 (2) interact 结束但是不会返回原来的地方保持当前状态当前主机。 3expect eof 与 interact 只能二选一。 2.4.expect实现免交互ssh主机
#!/usr/bin/expect
spawn ssh 192.168.47.3 # ssh 远程登陆使用spawn执行
expect {yes/no { send yes\n;exp_continue } # 捕捉yes/no然后发送yes\n起到回车的作用password { send 123123\n } # 继续捕捉password然后发送magedu\n起到回车的作用
}
interact # 结束符结束后不返回原用户停留在远程用户端上注意没有安装expect软件包无法使用expect脚本解释器 yum -y install expect