无法在破折号中对 jobs 命令的输出进行 grep 或字数统计

无法在破折号中对 jobs 命令的输出进行 grep 或字数统计

这是我在Arch的dash shell和FreeBSD默认的sh shell中测试的,结果是一样的。

$ sleep 100 &
$ jobs
[1] + Running                    sleep 100
$ jobs | wc
      0       0       0
$ jobs | grep 1

我不能wcgrep在命令的输出上jobs。该jobs命令是 shell 内置的。

这是什么原因呢?是否以jobs某种方式在交互式 shell 和管道中打印不同的信息?我不知道细节,但我知道 的类似行为ls。即,您将在 shell 中看到紧凑的输出ls,但grep会在独立行中处理每个文件名。

编辑:我发现了一个类似的问题:如何杀死破折号中的所有后台作业?,这个问题也是由于无法获取jobs命令的输出造成的。

相关内容