有没有办法在运行一个脚本时自动输入?

Is there a way to input automatically when running a script?

我正在尝试执行一个要求输入密码的脚本文件。有什么方法可以自动为命令提供所需的输入吗? 它在 psql 中,它有用户名参数 -U 但没有密码参数。

示例:

exa00009@exa00009:~$ sh redshift.sh
Password for user xyz:

您可以为您的脚本提供命令行参数,如下所示: sh redshift.sh yourInput 并在您的脚本中将其作为 var input= 并相应地使用。

这个问题已经回答了here

您可以为此使用 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