![脚本没有进入后台](https://linux22.com/image/1143973/%E8%84%9A%E6%9C%AC%E6%B2%A1%E6%9C%89%E8%BF%9B%E5%85%A5%E5%90%8E%E5%8F%B0.png)
答案1
脚本已转入后台并返回了提示。问题是您没有将其输出重定向到任何地方,因此它仍出现在您的终端中。将命令发送到后台只意味着它将继续运行,您可以在父 shell 中执行其他操作。但是,由于命令正在运行,其输出(stdout 和 stderr)仍连接到您当前的终端,这就是您仍然看到它们的原因。
因此,要向后台发送命令和隐藏其输出,你需要:
仅重定向标准输出,以便任何错误消息仍然打印到终端:
./leap > leap.log &
仅重定向 stderr,以便终端上仍出现输出但不出现错误:
./leap 2> leap.log &
重定向两者,以便不将任何内容打印到终端:
./leap > leap.log 2>&1 &
或者(如果你的 shell 支持的话)
./leap &> leap.log &
在所有示例中,要丢弃输出而不是保存到文件,请使用/dev/null
而不是leap.log
。
答案2
它做了返回提示符——它位于屏幕截图的第二行。错误消息只是弄乱了显示。尝试输入命令,你会发现它有效。或者输入 Enter 以获取新提示符。