“watch jobs”在 Linux 中不起作用
我想使用watch jobs
来查看我正在运行的所有作业的更新显示,但是当我尝试这样做时,我得到的只是手表的标题和空白屏幕。但是使用脚本
while (1)
sleep 10;
clear;
jobs;
end
确实可以,问题出在哪里呢?
I want to use watch jobs
to see an updated showing of all the jobs I have running, but when I try to do it, all I get is the headline of watch and a blank screen. But using the script
while (1)
sleep 10;
clear;
jobs;
end
does work, where is the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
作业控制由 shell 管理,
jobs
是 shell 内置函数。如果您使用命令which jobs
您将看到 $PATH 中的任何位置都没有名为 jobs 的二进制文件。watch
每两秒执行一次系统调用,因此 shell 函数对其不可用。您也可以尝试
watch 'ps awwwux | grep 你的用户名'
。但它与jobs
不太一样。Job control is managed by the shell and
jobs
is a shell builtin function. If you use the commandwhich jobs
you will see there is no binary called jobs anywhere in your $PATH.watch
is doing a system call every two seconds so shell functions aren't available to it.You could also try
watch 'ps awwwux | grep yourusername'
. But its not quite the same asjobs
.Job 不是一个系统命令,它是一个 shell 命令 - 当你开始观察时,他会执行一个子 shell,该子 shell 有自己的作业管理,当然没有作业。尝试观看 ps。
Job is not a system command its a shell command - when you start watch he executes a subshell which has its own job managment and of course no jobs. Try watch ps.