我正在尝试使用一个 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/