在脚本内编写作业时,-l不会将输出打印到文件中

时间:2019-05-05 04:13:36

标签: linux bash shell file jobs

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

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

./ program.sh

jobs-l >file.txt

file.txt

[1]+  3693 Running                 firefox &

这是文件内的预期输出

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

1 个答案:

答案 0 :(得分:3)

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

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

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

#!/usr/bin/env bash

firefox &
jobs -l > processes