我希望允许主要程序以标准方式运行,并在图形应用程序启动后从终端分离。在此示例中,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 作业列表中。但它似乎适合您的用例。