为什么 Zsh 函数中的后台命令在作业中无法正确显示?

为什么 Zsh 函数中的后台命令在作业中无法正确显示?

jobs在 Bash 5.2 中,以下任一操作之后的输出是相同的模作业编号:

sleep 3
# press C-z
s() { sleep 3; }
s
# press C-z

在两者中,jobs都会产生类似的东西

[1]+  Stopped                sleep 3

在 Zsh 5.9 (x86_64-apple-darwin20.6.0) 中,第一个生成包含以下sleep命令的类似足够的输出:

[1]  + suspended  sleep 3

第二个产生几乎无用的输出:

[1]  + suspended  

我有许多使用不同参数或完成来调用 Vim 的函数;在其中任何一个的执行过程中通过暂停 VimC-z:suspend将这样一个无用的条目放入jobs.对我来说,拥有两份或两份以上这样的工作并不罕见,在这种情况下,要保持它们的一致性就相当困难。

为什么 Zsh 会这样做?我有办法修复它吗?

相关内容