Используйте fzf, чтобы открыть файл со связанной программой по умолчанию в i3 - PullRequest
0 голосов
/ 28 марта 2020

Я новичок с Bash.

Я использую i3 и хотел создать простую программу поиска, которая поможет мне найти файл, открывая его с помощью fzf при закрытии окна терминала.

Я нашел скрипт в fzf do c, который позволяет мне открыть файл:

#!/bin/bash
IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
[[ -n "$files" ]] && xdg-open "${files[@]}"      

С этого момента все в порядке, и если я запускаю этот скрипт с именем fo из мой терминал, он открывает любой файл, который я хочу.

Теперь, первая проблема, я хочу закрыть терминал windows после того, как он открывает файл. После некоторых исследований я обнаружил, что мне нужно использовать дизаун. Поэтому я попытался в своем терминале запустить команду, просто чтобы проверить, работает ли она в .png, выполнив

xdg-open myimage.png & disown && exit

И она работает.

Поэтому я предполагаю, что если я сделаю то же самое с моим скриптом он должен работать.

#!/bin/bash
IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
[[ -n "$files" ]] && xdg-open "${files[@]}" & disown && exit

Но когда я запускаю, программа открывает файл, но не закрывает терминал.

Я пытался exec foo.sh чтобы запустить его, потому что я где-то видел, что когда я использую функцию выхода в скрипте, он выходит из скрипта, а не из терминала, и что каким-то образом exe c обходит это, но затем он выходит из терминала, но без открытия изображение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...