0

我只是想制作一个涉及命令“jobs”的简单脚本,但它似乎不起作用,它甚至没有被“man”识别......不知道发生了什么:S。

4

6 回答 6

1

jobs是一个 bash 内置函数(如果你想到它,拥有一个控制从 shell 启动的作业进程的系统命令实际上并没有什么意义)。您可以通过以下方式找到有关该命令的更多信息:

  • help jobs在您的终端发行
  • 阅读 bash 参考手册中的相应部分
于 2012-12-05T18:14:55.990 回答
1

您需要运行交互式 shell 才能使jobs命令工作 - 以这种方式进行的作业控制由用户使用,而不是由脚本使用。

您应该能够使用该jobs -p命令来获取正在运行的后台任务(作业)的 pid,这可能会完成您正在尝试做的事情。这应该显示子进程的所有 pid,可以单独检查/监控。

于 2012-12-05T18:09:32.957 回答
1

jobs只会报告jobs正在运行的 shell 实例产生的后台和/或挂起的进程。因此,在脚本中使用它的用处有限(但对于仅向脚本用户报告正在发生的事情应该没问题),因为只有在脚本中较早产生并且以某种其他方式被后台或暂停的东西才会被知道到运行脚本的 shell 实例。

于 2012-12-05T18:18:23.087 回答
0

安装 POSIX 手册页。该软件包应命名为“manpages-posix-dev”或类似名称。

于 2012-12-05T17:56:00.237 回答
0

我不认为有一个名为jobs.

在 ubuntu 上都找不到任何which jobs东西。sudo apt-get jobs

如果它是本地二进制文件,请检查$PATH以确保它被包含在内。

于 2012-12-05T17:56:58.090 回答
0

使用 ps 命令从 shell 脚本中查找您的进程

于 2012-12-05T18:29:55.293 回答