![捕获命令输出 n 秒,然后将其分离(在后台运行)](https://linux22.com/image/10319/%E6%8D%95%E8%8E%B7%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%20n%20%E7%A7%92%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%E5%85%B6%E5%88%86%E7%A6%BB%EF%BC%88%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%EF%BC%89.png)
我需要运行某个命令(在本例中为 ngrok)几秒钟,捕获所有输出,过滤掉一些变量,然后分离进程,使其在后台隐形运行。我怎样才能做到这一点?
答案1
(cmd &) | (timeout --foreground 2 cat; cat > /dev/null &)
将向您显示 2 秒的输出cmd
,然后返回,cmd
在后台运行,其输出将变为/dev/null
.
您可以将其重定向到文件或存储在变量中:
var=$(that command)
我需要运行某个命令(在本例中为 ngrok)几秒钟,捕获所有输出,过滤掉一些变量,然后分离进程,使其在后台隐形运行。我怎样才能做到这一点?
(cmd &) | (timeout --foreground 2 cat; cat > /dev/null &)
将向您显示 2 秒的输出cmd
,然后返回,cmd
在后台运行,其输出将变为/dev/null
.
您可以将其重定向到文件或存储在变量中:
var=$(that command)