如何从终端分离管道命令?

如何从终端分离管道命令?

我希望允许主要程序以标准方式运行,并在图形应用程序启动后从终端分离。在此示例中,fzf从文件中读取路径,将选定的文件和文件夹提供给mpv媒体播放器:

fzf < paths.txt | mpv --playlist=-

When&添加到命令中fzf永远不会以交互方式启动:

fzf < paths.txt | mpv --playlist=- &

虽然mpv有一个--terminal=no标志,它只是禁用终端输入和输出,仍然保留附加的 mpv 进程。

[...] 禁用终端和 stdin/stdout/stderr 的任何使用。这完全消除了任何消息输出。

与 --really-quiet 不同,这也会禁用输入和终端初始化。

答案1

当您将 放在&命令后面时,它适用于整个命令,而不仅仅是第二部分。

如果您只想在后台运行最后一部分,您可以这样做:

fzf < paths.txt | { mpv --playlist=- & }

mpv请注意,由于我找不到原因,这不会添加到 shell 作业列表中。但它似乎适合您的用例。

相关内容