某些情况下,比如oracle,必须切换到指定用户才能重启oracle。

每次手动操作比较麻烦,可以写个脚本。

自动输入密码的功能,需要用到expect

先安装

yum install -y expect

编辑脚本

vi aa.sh


#!/usr/bin/expect


set timeout 1

spawn su root -c "/opt/1.sh"

expect "password: "

send "123456\r"

interact

exit



备注:

1. 第一行是#!/usr/bin/expect,而不是#!/bin/bash,这个需要特别注意。脚本里面不要写shell相关的命令否则执行报错。

2. set timeout 1指定超时时间,如果不指定,需要等到12秒,才会执行-c 后面的脚本

3. -c是指定切换用户之后,需要执行的命令。有多个命令,可以写在一个脚本里面。如果没有-c选项,那么切换用户之后,后续执行的命令是在当前用户执行的,而不是切换之后的用户。

4. 123456\r 表示oracle密码是123456

5. /opt/1.sh 是需要执行的脚本,里面写好了相关命令,保证shell有执行权限。