shell脚本编辑-变量初值、预交互
变量的初值设置:
当你什么都没输入的情况下,有一个默认值
语法结构:
#${car:-worf}
//如果未定义变量的值,默认输出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 $i
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 "mima..\r" }
expect "#" { send "pwd > /tmp/$USER.txt"} //发送命令
expect "#" { send "exit\r" }
EOF
done
ssh不希望出现yes/no的情况:
ssh -o StrictHostKeyChecking=no IP地址