如何让鱼吞下?或者至少从程序中脱离出来

Posted

技术标签:

【中文标题】如何让鱼吞下?或者至少从程序中脱离出来【英文标题】:How do I get fish to swallow? or at least to detach itself from a program 【发布时间】:2020-11-24 07:34:08 【问题描述】:

我希望能够键入“vlc Music/”,然后让终端消失,直到我关闭新启动的 VLC 窗口。我查看了文档和其他地方,但找不到解决方案。如果我仍然可以使用终端,我会很好地保持打开状态,我只是不想打开一个无用的窗口,并且使用缩写启动音乐播放器比启动后使用 VLC 的 GUI 更优惠和罗菲一起。

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

【问题讨论】:

【参考方案1】:

假设您不关心任何 vlc 输出:

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

这会将 vlc 启动到后台,丢弃任何标准输出或标准错误,然后将进程与终端分离。

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

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

disowner vlc
funcsave vlc

【讨论】:

以上是关于如何让鱼吞下?或者至少从程序中脱离出来的主要内容,如果未能解决你的问题,请参考以下文章

Qt 如何编译成可执行程序,像VC的静态编译,可以在脱离QT的环境中运行

如果在“等待”之后抛出,则从任务中抛出的异常被吞下

disposition relative脱离文档流了

一旦在我的代码中触发警报,有没有办法让 requestCode 脱离待处理的意图?

如何防止学生脱离极域电子教室的控制

开发者测试