Shell 脚本中 fg 和 bg 命令的作用是什么?

推荐答案

在 Shell 脚本中,fgbg 命令用于控制作业(jobs)的前台和后台执行。

  • fg 命令:将后台作业切换到前台执行。使用 fg 命令时,可以指定作业编号(如 fg %1),将特定的后台作业切换到前台。如果不指定作业编号,默认将最近一个被挂起的作业切换到前台。

  • bg 命令:将挂起的作业放到后台继续执行。使用 bg 命令时,可以指定作业编号(如 bg %1),将特定的挂起作业放到后台。如果不指定作业编号,默认将最近一个被挂起的作业放到后台。

本题详细解读

fg 命令详解

  • 功能fg 命令用于将后台作业切换到前台执行。前台作业会占用当前的终端,直到作业完成或被挂起。
  • 使用场景:当你需要与一个后台作业进行交互时(例如输入数据或查看输出),可以使用 fg 命令将其切换到前台。
  • 示例在这个例子中,sleep 100 &sleep 命令放到后台执行,fg %1 将其切换到前台。

bg 命令详解

  • 功能bg 命令用于将挂起的作业放到后台继续执行。后台作业不会占用当前的终端,可以在后台继续运行。
  • 使用场景:当你有一个挂起的作业(例如通过 Ctrl+Z 挂起),并且希望它在后台继续执行时,可以使用 bg 命令。
  • 示例在这个例子中,sleep 100Ctrl+Z 挂起,bg %1 将其放到后台继续执行。

作业控制符号

  • &:在命令末尾加上 & 可以将命令放到后台执行。
  • Ctrl+Z:挂起当前的前台作业。
  • jobs:查看当前 Shell 会话中的所有作业及其状态。

作业编号

  • %n:表示作业编号为 n 的作业。例如,%1 表示作业编号为 1 的作业。
  • %+%%:表示最近一个被挂起或放到后台的作业。
  • %-:表示倒数第二个被挂起或放到后台的作业。

通过 fgbg 命令,可以灵活地控制作业的前台和后台执行,从而更好地管理 Shell 脚本中的任务。

纠错
反馈