欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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地址