推荐答案
在 Shell 脚本中,fg 和 bg 命令用于控制作业(jobs)的前台和后台执行。
fg命令:将后台作业切换到前台执行。使用fg命令时,可以指定作业编号(如fg %1),将特定的后台作业切换到前台。如果不指定作业编号,默认将最近一个被挂起的作业切换到前台。bg命令:将挂起的作业放到后台继续执行。使用bg命令时,可以指定作业编号(如bg %1),将特定的挂起作业放到后台。如果不指定作业编号,默认将最近一个被挂起的作业放到后台。
本题详细解读
fg 命令详解
- 功能:
fg命令用于将后台作业切换到前台执行。前台作业会占用当前的终端,直到作业完成或被挂起。 - 使用场景:当你需要与一个后台作业进行交互时(例如输入数据或查看输出),可以使用
fg命令将其切换到前台。 - 示例:
$ sleep 100 & [1] 12345 $ fg %1 sleep 100
在这个例子中,sleep 100 &将sleep命令放到后台执行,fg %1将其切换到前台。
bg 命令详解
- 功能:
bg命令用于将挂起的作业放到后台继续执行。后台作业不会占用当前的终端,可以在后台继续运行。 - 使用场景:当你有一个挂起的作业(例如通过
Ctrl+Z挂起),并且希望它在后台继续执行时,可以使用bg命令。 - 示例:
$ sleep 100 ^Z [1]+ Stopped sleep 100 $ bg %1 [1]+ sleep 100 &
在这个例子中,sleep 100被Ctrl+Z挂起,bg %1将其放到后台继续执行。
作业控制符号
&:在命令末尾加上&可以将命令放到后台执行。Ctrl+Z:挂起当前的前台作业。jobs:查看当前 Shell 会话中的所有作业及其状态。
作业编号
%n:表示作业编号为n的作业。例如,%1表示作业编号为 1 的作业。%+或%%:表示最近一个被挂起或放到后台的作业。%-:表示倒数第二个被挂起或放到后台的作业。
通过 fg 和 bg 命令,可以灵活地控制作业的前台和后台执行,从而更好地管理 Shell 脚本中的任务。