我怎样才能把鱼吞下去?或者至少将其自身与程序分离



我希望能够键入"vlc音乐/";然后让终端离开,直到我关闭新启动的VLC窗口。我查看了文档和其他地方,但找不到解决方案。如果我还能使用的话,我可以让终端保持打开状态,我只是不想打开一个无用的窗口,而且在使用Rofi启动音乐播放器后,使用缩写来启动音乐播放器比使用VLC的GUI要优惠得多。

此外,如果我学会了如何做到这一点,我可以为我的所有程序做同样的事情,并且可以只使用终端启动我的应用程序,而不需要一直使用Rofi。

假设您不关心vlc的输出:

function vlc --wraps=vlc
command vlc $argv >/dev/null 2>&1 &
disown
end
funcsave vlc

这将在后台启动vlc,丢弃任何stdout或stderr,然后将进程从终端分离。

如果这是你要反复做的事情,你可以做这样的事情:

function disowner -a cmd
eval "function $cmd --wraps=$cmd
command $cmd $argv >/dev/null 2>&1 &
disown
end"
end
disowner vlc
funcsave vlc

最新更新