可执行文件无法像常规一样工作

可执行文件无法像常规一样工作

当我输入此命令时

nohup CloudCompute.command &

它产生了结果

[1] 782

这正是我想要的。(顺便说一下,这是 PID 号)

因此,当我在可执行文件 ( .command) 中运行相同的命令并尝试将输出附加到文件时,它不起作用。它只打印CloudCompute.command输出的内容,而不是运行时显示的实际 PID。我确信它在同一目录中。

为什么会发生这种情况?我该怎么做才能使可执行文件产生与手动输入相同的输出?

谢谢

答案1

为什么会发生这种情况?

该输出:

[1] 782

不是来自可执行文件。bash当您在后台执行某些操作时,它会写入终端。它是作业编号[1]和进程的 PID 782。稍后当进程完成时,您将看到类似以下内容:

[1]+  Done                    command

这也是从bash注意到作业编号为 1 的进程已经完成而来的。

在后台运行命令时,PID 存储在变量中$!

$ sleep 10 &
[1] 1234
$ echo $!
1234

我该怎么做才能让可执行文件产生与手动输入相同的输出?

因此,你的可执行文件产生相同的输出。

相关内容