如何在不使用Expect命令的情况下从Shell脚本提供密码

我正在编写bash脚本以停止启动我的postgres DB服务。最初,我成功创建了一个,但是一旦启用SSL证书,它就会提示输入短语密码。

我知道最简单的解决方案是使用Expect,但是在我的环境中我无权使用它。

有人可以在脚本编写方面为我提供帮助吗,如何在没有用户干预的情况下提供PEM PHRASE密码。

到目前为止,这就是我所做的。

-bash-4.2$ cat start_postgres_db.sh

cd `dirname $0`

. `dirname $0`/parameter.env

${POSTGREBIN}/pg_ctl -D ${POSTGREDATAPATH} start -w

while true

do

sleep 1

loopcnt=0

loopcnt=`expr ${loopcnt} + 1`

PRCCNT=`ps -ef | grep ${DBEXENAME} | grep -v grep|wc -l`

if [ ${PRCCNT} -eq 1 ]

then

        echo "PostgreSQL process started sucessfully"

        exit
fi

if [ ${loopcnt} -gt 11 ]

then

    echo "PostgreSQL process not started successfully"

    echo "su to postgres and run ${POSTGREBIN}/pg_ctl -D ${POSTGREDATAPATH} restart"

    exit
fi

done

执行:

bash-4.2$ ./start_postgres_db.sh

waiting for server to start....Enter PEM pass phrase:.........
评论