Я написал простой сценарий bash, который запрашивает путь к файлу или каталогу и открывает его с помощью exo-open. Затем я назначил этот сценарий сочетанию клавиш, чтобы я мог CTRL< /kbd>+SHIFT+ALT+O, чтобы открыть что-либо в любое время с помощью командной строки терминала:
И сценарий:
#!/bin/bash
# CD to the home folder (not sure if this is needed, no harm either way)
cd ~/
# Request the filepath
echo -e "\e[1;31mEnter a file or directory:\e[00m"
read -e -i "~/" filename
# Convert ~/ to /home/username/
filename=`eval "echo $filename"`
echo -e "opening\e[1;32m" $filename "\e[00m"
# Open the file
exo-open "$filename"
echo "press enter to exit"
read enter
Моя проблема в том, что порожденная программа связана с терминалом, когда терминал закрывается, он забирает программу с собой - в качестве простого обходного пути у меня есть еще одно приглашение пользователя в конце, чтобы остановить закрытие терминала; Кто-нибудь знает, как я могу разрешить закрытие терминала, но оставить результирующую программу открытой?
Некоторые идеи, которые у меня были / пробовали:
- запустить
disown $!
после экзо-открытия (не сработало) - используйте
nohup
(не сработало) - Запустите exo-open из PPID (не знаю, как это сделать)
У меня кончается разум :-(
%1
вместо$!
- person glenn jackman   schedule 06.04.2012setsid exo-open "$filename"
- person oodavid   schedule 06.04.2012