进程可以在完成后返回前台吗? (AIX/ksh)

进程可以在完成后返回前台吗? (AIX/ksh)

我有一个 while 循环来数到 5 并在完成时回显“完成”。我希望能够使用“&”在后台执行脚本,并在运行时继续发出命令。

但是当它完成后,我希望它在回显“完成”之前使其自身成为前台进程。之后,我希望它会显示一个新的命令提示符行。我可以只回显“\nDone”,并且我理解为什么在后台运行它只会打印输出而不是结束/开始新的提示。但我想知道是否有可能在结束之前基本上将“合并作业”重新组合在一起,以及我是否可以在脚本中使用内置作业控制将其应用到其他地方。

这不是一个实际问题,只是好奇。

    i=0

    while [ $i -lt 5 ]
    do
        let i+=1
        sleep 1
    done

    fg
    echo "Done"

答案1

不 - 正在运行的进程不能执行此类操作,因为它们由 shell 后台运行,并且 shell 的工作是确定哪个进程是前台/后台/挂起的。

试试这个 - 删除fg,然后在后台运行 shell 脚本(即&末尾带有 a )。完成后,输出将模糊地显示到您的控制台。

相关内容