📅  最后修改于: 2023-12-03 14:48:43.370000             🧑  作者: Mango
在Shell-Bash编程中,我们经常需要运行一些静默background 任务,而这些任务的输出我们有时候并不关心,甚至会干扰我们的工作。那么如何让这些background任务静默输出呢?下面让我们来介绍这个问题的解决方法。
在运行background任务时,我们可以使用>/dev/null
命令,将任务的输出重定向到空设备中,从而实现静默输出的效果。
command >/dev/null 2>&1 &
其中的2>&1
表示将标准错误输出也重定向到标准输出,使得错误信息也能被重定向到空设备中。
我们还可以使用nohup
命令来运行background任务,这样任务的输出就会被记录在当前目录的nohup.out
文件中,而不会在Shell中输出。使用nohup
命令的格式如下:
nohup command >/dev/null 2>&1 &
同样地,我们也需要使用>/dev/null
命令将任务的标准输出和标准错误输出重定向到空设备中。
最后,我们还可以使用disown
命令来实现background任务的静默输出。disown
命令可以将任务移出当前Shell的进程组,使得任务不再受当前Shell的控制,从而达到静默输出的效果。使用disown
命令的格式如下:
command >/dev/null 2>&1 &
disown %1
其中%1
表示最近一个background任务的作业号,可以使用jobs
命令查看。
以上就是在Shell-Bash中实现background任务的静默输出的方法,希望能帮助到大家。