bash - 向已在运行的进程提供参数(通过 bash 脚本)

标签 bash

我正在尝试使用一个 bash 脚本来执行以下操作(伪代码):

#!/bin/bash
run myapp (which needs arguments given from stdin)
/* do some extra stuff */
provide arguments to hanging process myapp

例如,假设您运行 myapp,它运行后会询问您的姓名。也就是说,我通过 bash 运行它,但我还不想给它起个名字。我只是想让它暂时运行,同时 bash 做一些其他的事情,然后我想提供我的名字(仍然通过 bash)。我该怎么做呢?

最佳答案

您可以使用匿名管道:

# open a new file descriptor (3) and provide as stdin to myapp
exec 3> >(run myapp) 

# do some stuff ....

# write arguments to the pipe
echo "arg1 arg2 -arg3 ..." >&3

与命名管道相比的优势在于您无需担心清理问题,也不需要任何写入权限。

关于bash - 向已在运行的进程提供参数(通过 bash 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684882/

相关文章:

bash - 在 msys bash 上包含换行符时 PS1 命令替换失败

用于检查未设置和空白变量的 Bash 函数

linux - 我们可以在 bash 脚本中让 sleep 时间少于一秒吗?

bash - grep - 如何输出进度条或状态

python - 如何使用gsutil删除gcs中除1之外的多个文件

linux - 防止使用 ./(点斜杠)启动 bash 脚本

linux - 如何在mailx命令中添加收件人姓名

linux - 如何检查命令是否匹配输出

linux - 运行 shell 命令,不要等待返回

Bash 脚本倒数计时器需要检测任何键才能继续