如何使用expect自动输入密码?

Bash

1 前言

一个问题,一篇文章,一出故事。
笔者最近在一个脚本中使用“adcli passwd-user”命令修改AD用户时无法做到自动应答,于是整理此章节。

2 最佳实践

2.1 创建脚本

vim ~/scripts/autoChangeADPasswd.sh

创建如下脚本,

#!/bin/bash

userDomain='cmdschool.org'
userName='userName'
userPasswd='userPasswd'
adminUserName='adminName'
adminPasswd='adminPasswd'

expect <<-EOF
spawn adcli passwd-user -D "${userDomain}" -U "${adminUserName}" "${userName}"
expect "Password"
send "${adminPasswd}\r"
expect "Password"
send "${userPasswd}\r"
expect eof      
EOF

另外,你可能还需要安装如下软件包,

yum install -y expect

2.2 执行脚本

sh ~/scripts/autoChangeADPasswd.sh
没有评论

发表回复

Bash
如何实现SFTP自动上传下载?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要实现sftp自动上传下载,于是整理此文。 以下 …

Bash
如何实现Base Shell根据关键字获取数组?

1 前言 一个问题,一篇文章,一出故事。 笔者最近写一个Shell发现同一个脚本需要引用两个以上AD …

Bash
如何熟悉Base Shell的变量的间接引用?

1 前言 一个问题,一篇文章,一出故事。 笔者希望以一个变量名称去引用另一个变量,于是整理此文。 2 …