Как вернуться из xdg-open в сценарии оболочки

У меня есть несколько функций оболочки, которые позволяют мне быстро открыть что-то в браузере, например:

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
}

Эта функция загружается в мои сценарии запуска оболочки, и она отлично работает, выпуск репозитория открывается в браузере, как и ожидалось, однако мне приходится вручную выходить из функции в терминале с помощью ctrl + c, прежде чем я смогу снова набрать текст в терминале.

0
задан 11 June 2021 в 18:39

1 ответ

xdg-open отделяет выполняемую команду от терминала, поэтому, вероятно, ваш терминал освобожден. Только вы видите некоторый вывод браузера, а не командную строку. Просто нажмите Ctrl + L или дайте команду clear , чтобы вернуться в аккуратную подсказку терминала.

Из эстетических соображений можно перенаправить вывод терминала на / dev / null , добавив 1> / dev / null 2> & 1 после команды. В качестве альтернативы можно добавить к команде nohup . Это немедленно отключает команду xdgopen от терминала и перенаправляет ее вывод.

1
ответ дан 28 July 2021 в 11:29

Другие вопросы по тегам:

Похожие вопросы: