如何从 shell 脚本运行命令(用于父 shell)?

如何从 shell 脚本运行命令(用于父 shell)?

什么将解释器实例与特定会话联系起来?例如,终端实例的具体内容是什么,使得命令jobs只显示该解释器实例中的作业?(例如当您打开另一个终端时?)如何让jobsshell 脚本中的命令显示其父 shell 中的所有作业?

答案1

是什么使得像命令这样的jobs只显示解释器实例中的作业?

jobs显示 shell(特定 shell 进程)已启动的作业。shell 会跟踪它启动的命令,然后给出数字(工作编号) 并了解子进程的状态,因为当子进程退出时,父进程会收到通知。

该 shell 不知道其他 shell 实例或其他程序启动的进程。

如何jobs在 shell 脚本中获取命令来显示其父 shell 中的所有作业?

你不知道。

当然,您可以浏览中的数据/proc或输出来ps查找父进程的子进程,但没有直接的方法让进程了解它们的兄弟进程。更不用说了解它们之间的关系了,例如哪些是同一管道的一部分。

相关内容