dksadmsaklaslksald Asked: 2018-06-18 15:19:22 +0800 CST2018-06-18 15:19:22 +0800 CST 2018-06-18 15:19:22 +0800 CST 作业未出现在“作业”中 772 我有一个脚本叫做go.sh python3 bob.py &> lol.log & python3 alice.py &> lol2.log & 当我运行./go.sh然后运行jobs. 我执行的任何一项工作都没有go.sh出现在jobs. 事实上,什么都没有出现在jobs. 然而,当我逐个运行每个命令时go.sh,它确实出现在jobs. 我怎样才能解决这个问题? linux jobs 2 个回答 Voted stolenmoment 2018-06-18T15:32:17+08:002018-06-18T15:32:17+08:00 如果作业是您正在输入的 shell 的直接子级,则作业只会出现在“作业”中。该脚本在新进程中的子shell 中运行,因此不是登录shell 的子shell,并且对登录shell 不可见。 Best Answer user147505 2018-06-18T15:35:20+08:002018-06-18T15:35:20+08:00 我假设您go.sh &不仅运行go.shthen jobs,因为这是微不足道的(一旦结束就不会报告任何工作)。 您的脚本在后台启动了两项工作并完成了。所以你看不到它。您也看不到脚本启动的作业,因为它是另一个 shell。如果您想查看作业,而不是执行脚本,请获取它。 . go.sh; jobs 现在您应该看到列出的两个作业。 如果您更喜欢执行脚本并仍将其视为一项工作,请告诉它等到其子项完成。wait在其结束之前添加。您也可以jobs从脚本中调用。
如果作业是您正在输入的 shell 的直接子级,则作业只会出现在“作业”中。该脚本在新进程中的子shell 中运行,因此不是登录shell 的子shell,并且对登录shell 不可见。
我假设您
go.sh &
不仅运行go.sh
thenjobs
,因为这是微不足道的(一旦结束就不会报告任何工作)。您的脚本在后台启动了两项工作并完成了。所以你看不到它。您也看不到脚本启动的作业,因为它是另一个 shell。如果您想查看作业,而不是执行脚本,请获取它。
现在您应该看到列出的两个作业。
如果您更喜欢执行脚本并仍将其视为一项工作,请告诉它等到其子项完成。
wait
在其结束之前添加。您也可以jobs
从脚本中调用。