shell脚本编辑 -变量初值处理、expect交互
程序员文章站
2022-03-05 13:10:51
...
shell脚本编辑 -变量初值处理、expect交互
1.变量的初值:字符串初值设置:
当你什么都没输入的情况下,有一个默认值
语法结构:
${var:-word}
//如果未定义变量的值,默认输出word
//如果定义了变量的值,输出定义好的值
实例:
创建一个脚本,实现,交互式的创建用户和密码。
如果用户未设置密码,则默认密码是123456
#!/bin/bash
read -p "请输入用户名:"user
read -p "请输入密码":pass
id -u $user
[ $? -eq 0 ] && exit
[ $UID -ne 0 ] && exit
[ -z $user ] && exit
pass=${pass:-123456}
useradd $user
echo "$pass" | passwd --stdin $user
传递多行值给命令:
#命令 << EOF
sdfjh
kakjsddn
aslkkn
EOF
应用场景是发邮件。mail
expect预期交互:
for i in `cat ipaddress.txt`
do
ssh $1
mkdir /abc
yum -y install mysql
exit
done
ssh :
第一次登陆会让你输入是否接受公钥
第二次登陆会直接输入密码
1.需要安装expect工具人
#yum -y install expect
2.实现免交互登陆:
#vim expect.sh
#!/bin/bash
expect << EOF
spawn ssh 49.233.75.86 //创建交互式进场
expect “password” {send “zhangxuyamh1215…\r”} //自动发送密码
expect “#” { send"pwd > /tmp/$USER.txt\r"} //发送命令
expect “#” { send"exit \r" }
EOF
done
ssh 不希望出现yes/no的情况:
ssh -o StrictHostKeyChecking=no IP地址