使用expect来解决命令交互问题
linux里面很多命令都是需要人为交互的,对于做成脚本来说,有点不合适了,比如通过密码连接SSH必须要在控制台输入密码(安全起见还是用rsa key),expect
是预期的意思,它可以实现我们预期的结果。
安装
ubuntu/debian
1
sudo apt install -y expect
centos/rhel
1
sudo yum install -y ecpect
解释器使用expect
1 |
|
这种方式由于解释器使用了expect,所以只能使用有限的命令,不是很推荐
解释器使用bash
假设certbot不支持非交互使用
1 |
|
直接使用expect命令
这种和切换解释器类似, 类比于
./test.sh
和bash test.sh
的关系。
vim test.sh
1 | spawn ldapadd -x -D cn=Manager,dc=nutstore,dc=com -W -f /vagrant/basedomain.ldif |
1 | expect test.sh |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 杂烩饭!
评论