shell - 有没有办法在运行脚本时自动输入?

标签 shell ubuntu psql

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

例子:

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

关于shell - 有没有办法在运行脚本时自动输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38429964/

相关文章:

python - 导入错误 : No module named 'PIL' in python 3. 4

PostgreSQL - 如果输入错误,如何取消在 psql 终端中输入的内容?

shell - ubuntu 脚本从一个目录 cp 到另一个目录

linux - shell 保存MySQL查询结果到文件

python - 为什么我不能在 Ubuntu 16.04 上安装 python3.8-dev?

android - 通过 ssh 连接到安卓

python - psql 在 cursor.fetchall() 期间转换解析错误

bash - 在 bash 命令行使用 psql 测试 postgresql 连接字符串?

linux - 如何在 shell 脚本中逐行从文件中分离关键字?

python - 使用 root 权限从 python 脚本调用 shell 脚本