【发布时间】:2016-07-18 06:33:27
【问题描述】:
我正在尝试执行一个要求输入密码的脚本文件。有什么方法可以自动为命令提供它需要的输入?
它在 psql 中,其中有参数-U 作为用户名,但没有参数作为密码。
例子:
exa00009@exa00009:~$ sh redshift.sh
Password for user xyz:
【问题讨论】:
我正在尝试执行一个要求输入密码的脚本文件。有什么方法可以自动为命令提供它需要的输入?
它在 psql 中,其中有参数-U 作为用户名,但没有参数作为密码。
例子:
exa00009@exa00009:~$ sh redshift.sh
Password for user xyz:
【问题讨论】:
您可以为此使用expect。
这是一个简单的例子:
#!/usr/bin/expect -f
set PASSWORD "1"
set USER "dvp"
spawn psql -U ${USER} -W
expect "*?assword*"
send -- "${PASSWORD}\r"
expect eof
可能你需要先安装expect:
sudo apt-get install expect
【讨论】:
您可以为您的脚本提供命令行参数,如下所示:
sh redshift.sh yourInput
并在您的脚本中将其命名为 var input=$1 并相应地使用。
这个问题已经回答here
【讨论】: