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

shell脚本编程 变量初值处理、expect交互

程序员文章站 2022-07-10 11:18:56
...

变量的处置:字符串初值设置:
当你什么都没有输入的情况下,有一个默认值。
语法结构:
${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地址