我执行了这样的命令:nohup some_command &
。现在这个命令在后台运行。我可以用命令看到它jobs
。
输出示例:
[1]+ Running nohup some_command &
是否有可能以某种方式拥有一个居住来自jobs
命令的状态表示,类似于top
作品?那么nohup some_command &
完成后,它会立即从列表中消失吗?
答案1
如果您想要的只是立即打印作业完成通知,即使您正在键入提示或其他作业位于前台,那么只需运行set -o notify
.
如果您希望前台命令显示当前 shell 中后台作业的状态,则可以jobs
循环运行。在全屏模式下很容易做到:
tput clear
jobs
while sleep 1; do
tput clear
jobs
done
如果要在不清除屏幕的情况下显示提示下方的列表,请保存开头的光标位置并在每次运行时恢复它:
tput sc
jobs
while sleep 1; do
tput rc
jobs
done
答案2
您可以创建一个 shell 函数:
myjobwatch() { while true; do jobs; sleep 2; clear; done; }
然后只需执行myjobwatch