首页 > 解决方案 > 在脚本中写入时,jobs -l 不会将输出打印到文件中

问题描述

我希望将“jobs -l”的输出写入文件,并且将 jobs -l 命令写入 shell 脚本程序中

“jobs -l”命令在终端中简单地给出时有效,即使它在终端中简单地给出但不在程序内时打印到文件“jobs -l >file.txt”。

./program.sh

jobs-l >file.txt

文件.txt

[1]+  3693 Running                 firefox &

这是文件中的预期输出

但实际上,我在文件中什么也没得到。文件已创建但为空

标签: linuxbashshellfilejobs

解决方案


那是因为您正在脚本中启动一个新的 shell。这个 shell 确实没有一个正在运行的后台进程。

您可以尝试在当前 shell 中启动 firefox:firefox &并打开另一个 shell 并运行以下命令:jobs -l。这应该是空的。

如果您在脚本中启动 Firefox 后台进程,它会显示出来。

#!/usr/bin/env bash

firefox &
jobs -l > processes

推荐阅读