变量的处置:字符串初值设置:
当你什么都没有输入的情况下,有一个默认值。
语法结构:
${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 $i
mkdir /abc
yum -y install mysql
exit
done
ssh:
第一次登陆会让你输入是否接受密钥
第二次登陆会直接舒服密码
1.需要安装expect工具
# yum -y install expect
2.实现免交互登陆:
# vim expect.sh
#!/bin/bash
for i in `seq 10`
do
expect << EOF
spawn ssh 49.233.75.$i //创建交互式进程
exprct“password” { send“XXXX\r” } //自动发送密码
expect“#”{send“pwd > /tmp/$USER.txt \r”} //发送命令
expect“#”{send“exit \r”}
EOF
done
ssh 不希望出现yes/no的情况:
ssh -o StrictHostKeyChecking=no IP地址