特色美食网站建设,平面设计案例图片,静态网页文件的扩展名,重庆网站建设及优化一、Here Document
语法格式#xff1a; 命令 标记 ...... ...... 标记
1.用wc -l的命令统计输入的文字的行数
[rootlocalhost ~]# wc -l EOFaaabbbcccEOF
3 备注#xff1a; 显示行数。
2.整体赋值给变量#xff0c;通过ech… 一、Here Document
语法格式 命令 标记 ...... ...... 标记
1.用wc -l的命令统计输入的文字的行数
[rootlocalhost ~]# wc -l EOFaaabbbcccEOF
3 备注 显示行数。
2.整体赋值给变量通过echo打印出来
[rootlocalhost ~]# vim aaa.sh
a很高兴认识你
b$(cat EOF
你好
$a
EOF
)
echo $b
[rootlocalhost ~]# bash ccc.sh
你好 很高兴认识你
备注 你好 $a EOF在使用 tab键时b$(cat EOF要改写成b$(cat -EOF
3. 添加注释符 #多行注释
[rootlocalhost ~]# vim ddd.sh
echo 11
:EOF
echo 22
echo 33
EOF
echo 44
[rootlocalhost ~]# bash ddd.sh
11
44 备注 表示什么命令都不做的空命令
二、expect
1.基础命令
expect 建立在TCL语言基础之上的一个工具需要一些交互任务自动完成解决交互的相关问题。
(1)expect
判断输出结果中是否包含指定的字符串如果有则立即返回否则就等待超时时间后返回只能捕捉由spawn启动的进程的输出用于接收命令执行后的输出然后和期望的字符串匹配
(2) send 发送字符串用户输入无法自动换行r回车 (3) spawn 开起会话后面跟系统命令启动进程 (4) expect eof 结束符 等待执行结束 (5) interact 结束交互但依旧停留在目标终端不会返回原始终端。
2.ssh无交互登录到远程服务器
[rootlocalhost ~]# yum -y install expect
[rootlocalhost ~]# vim eee.sh
#!/usr/bin/expect
spawn ssh 192.168.10.102
expect {
*yes/no {send yes\r;exp_continue}
password: {send aptech\r;}
}
expect #
interact
[rootlocalhost ~]# chmod x eee.sh
[rootlocalhost ~]# ./eee.sh备注
#!/usr/bin/expect 这里需要用expect自己的解释器注意不要写成bash否则无法识别。spawn ssh root192.168.100.102 开启一个程序这个程序是ssh远程登录。*yes/no {send yes\r; exp_continue} 当提示符中出现yes/no的时候自动发送一个yes字符。password: { send aptech\r; } 当出现password的时候就会向程序发送密码默认是不换行的所以需要\r回车换行多个条件需要大括号括起来。interact 需要继续交互不要用expect eof否则会直接退出远程服务器。 3. 对方服务器上进行一下操作后再退出可执行以下脚本
[rootlocalhost ~]# vim eee.sh
#!/usr/bin/expect
spawn ssh 192.168.10.102
expect {
*yes/no {send yes\r;exp_continue}
password: {send aptech\r;}
}
expect #
send ifconfig ens33\r
send exit\r
expect eof
[rootlocalhost ~]# chmod x eee.sh
[rootlocalhost ~]# ./eee.sh
备注
expect # //当捕获到#的时候 send ls \r //执行ls命令 send ifconfig ens33 \r //执行ifconfig ens33命令 send exit\r //执行完exit退出登陆 expect eof //不需要进行交互了意味着结束expect程序
4. 创建用户并设置密码
[rootlocalhost ~]# vim fff.sh
#!/bin/bash
user$1
password$2
useradd $user
expectEOF
spawn passwd $user
epect New password:
send ${password}\rexpect Retry new password:
send ${password}\r
expect eof
EOF
[rootlocalhost ~]# cat /etc/shadow5. ssh远程自动登录
102主机服务器
[rootlocalhost ~]# yum -y install vsftpd
[rootlocalhost ~]# systemctl stop firewalld
[rootlocalhost ~]# setenforce 0
[rootlocalhost ~]# systemctl start vsftpd
101客户端
#!/usr/bin/expect
spawn ftp 192.168.10.102
expect Name
send ftp\r
expect Password:
send \r
expect ftp
send exit\r
expect eof
[rootlocalhost ~]# chmod x hhh.sh
[rootlocalhost ~]# ./hhh.sh