在 UNIX 中,我有一个要使用 nohup 运行的进程。但是,此过程将在某个时候等待我必须输入yes
或no
继续的提示。到目前为止,在 UNIX 中我一直在做以下事情:
nohup myprocess <<EOF
y
EOF
Run Code Online (Sandbox Code Playgroud)
因此,我使用 nohup 启动进程“myprocess”,并在带有“y”的文件中使用管道,然后关闭该文件。上面的几行实际上是三个独立的命令——即我在 UNIX 的第一行按 Enter,然后我得到一个提示,我输入“y”,然后按 Enter,最后输入“EOF”并再次按回车。所以这很有效,但我的问题如下。
我现在想在 Perl 中执行此命令,但我不确定如何执行此命令,因为它超过三行。我不知道以下是否有效:
my $startprocess = `nohup myprocess <<EOF &
y
EOF
`
Run Code Online (Sandbox Code Playgroud)
Mic*_*zek 19
如果您只想将单个写入y
进程的标准输入,您可以这样做:
(echo y | nohup myprocess) &
Run Code Online (Sandbox Code Playgroud)
如果您想y
为出现的每个提示继续编写,coreutilyes
正是为此目的而存在的——它将继续将您告诉它的任何内容写入标准输出。它的默认值是输出“y”,所以你可以:
(yes | nohup myprocess) &
Run Code Online (Sandbox Code Playgroud)
但如果你需要别的东西,你可以将它作为参数传递