Shell 运行脚本时是否有自动输入的方法?

Shell 运行脚本时是否有自动输入的方法?,shell,ubuntu,psql,Shell,Ubuntu,Psql,我试图执行一个脚本文件,它要求输入密码。我们有没有办法自动为命令提供所需的输入? 它在psql中,用户名有参数-U,但密码没有参数 例如: exa00009@exa00009:~$ sh redshift.sh Password for user xyz: 您可以为脚本提供命令行参数,如下所示: sh redshift.sh您的输入 在您的脚本中,将其作为var-input=$1获取并相应地使用 这个问题已经回答了您可以使用它。 下面是一个简单的例子: #!/usr/bin/expect -f

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

例如:

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

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

这个问题已经回答了

您可以使用它。 下面是一个简单的例子:

#!/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文件有psql命令,除了用户名参数之外,没有密码。我需要将其自动化,这样我只需运行脚本就可以了