2012-12-05 197 views
0

我只是想制作一个简单的脚本,其中涉及命令“工作”,但它似乎不起作用,甚至没有得到“男人“......不知道发生了什么事:S。命令“工作”不能在终端(外壳,bash)上工作

+0

'jobs'是shell内置命令 - “man bash”来阅读它。它是如何“不工作”?你在期待什么与你正在观察的是什么? – twalberg

+0

它应该显示工作暂停或在第二架飞机的状态,或者如此说我的老师... – Zasito

+1

不知道什么是“第二架飞机”的意思,但我会加上 - “工作”会告诉你的背景并由这个shell实例启动的作业*暂停。因此,如果你的脚本不在后台启动任何东西(即'some_command&'),'jobs'就不会有输出。它不会报告由父shell启动的事情。 – twalberg

回答

1

jobs将仅在背景和/或通过在其中jobs正在运行壳的实例产生了挂起的进程报告。因此,在脚本中使用它将会是有用的(但对于报告脚本用户的情况应该没问题),因为只有在脚本中早些时候产生并且以其他方式背景或暂停的事物才会是已知的到运行脚本的shell实例。

0

安装POSIX手册页。这个软件包应该被命名为“manpages-posix-dev”或类似的东西。

0

我不认为有一个名为jobs的linux/unix命令。

ubuntu上的which jobssudo apt-get jobs找不到任何东西。

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

+0

'type jobs'可能会找到它,具体取决于你正在使用的shell。 – cdarke

1

您需要为jobs命令运行交互式shell才能执行作业 - 作业控制由用户使用,而不是由脚本使用。

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

1

jobs是一个bash内建的(如果你想到它,它实际上并没有真正有意义的控制从shell启动的作业进程的系统命令)。在终端

    • 发行help jobs在Bash参考手册阅读corresponding section:你会发现有关该命令的详细信息。
  • 0

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

    相关问题