如何在 shell 脚本中从 xdg-open 返回

如何在 shell 脚本中从 xdg-open 返回

我有一些 shell 函数可以让我在浏览器中快速打开某些内容,例如:

issue () {
    if [[ -z "$1" ]]
    then
        xdg-open "https://github.com/myname/myrepo/issues/$(git branch | grep '*' | grep -Poh '\d+')"
    else
        xdg-open "https://github.com/myname/myname/issues/$1"
    fi
}

该函数加载到我的 shell 启动脚本中,并且运行良好,repo 问题按预期在我的浏览器中打开,但是我必须手动退出终端中的该函数,然后ctrl + c才能在终端中再次输入。

答案1

xdg-open将它运行的命令与终端分离,因此您的终端可能被释放。只是,您会看到浏览器的一些输出,而不是命令提示符。只需按Ctrl+L或输入命令clear即可返回到整洁的终端提示符。

出于美观原因,您可以在命令后/dev/null添加将终端输出重定向到。或者,在命令前添加也可以。这会立即将命令与终端分离并重定向其输出。1>/dev/null 2>&1nohupxdgopen

相关内容