【问题标题】:How to input on a running process in a terminal如何在终端中输入正在运行的进程
【发布时间】:2018-10-25 23:29:04
【问题描述】:

我想在 Linux 中编写一个脚本,启动一个程序(在终端中),然后在已经运行的程序的上下文中编写我想要的内容。 例如,我有 myScript.sh :

#!/bin/bash
echo "I want to open pgcli"
pgcli -h #ARGUMENTS#
....

当我从终端运行它时,当 pgcli 启动时,这当然会卡住。当我手动完成它时,会执行以下语句。 我不想做的是:当 pgcli 启动并要求我输入密码时,脚本会在程序的上下文中写入密码(然后是另一个 SQL 语句)。

这可以在脚本中完成吗?如果是这样,我该怎么做? 谢谢!

【问题讨论】:

标签: linux shell terminal


【解决方案1】:

假设您的程序从标准输入读取, 如果您有一个包含所有需要输入的文件,如下所示:

password
sql query1
sql query2

然后您可以执行以下操作:

cat input | pgcli

在您的脚本中。或者干脆做

echo "input" | pgcli

【讨论】: