Добрый день! Есть скрипт:
#!/bin/bash
findinhome() {
find ~/* -iname \*"$1"\*;
}
LISTGEN="findinhome";
HANDLER="xdg-open";
until [[ $QUERY_RESULT != "" ]]; do
read QUERY
if [[ $QUERY == "" ]]
then exit
fi
QUERY_RESULT=$($LISTGEN "$QUERY" 2>/dev/null)
done
echo "$QUERY_RESULT" | cat -n
read QUERY_CHOICE
if [[ $QUERY_CHOICE == "" ]]; then
exit
fi
$HANDLER "$(echo "$QUERY_RESULT" | awk NR==$QUERY_CHOICE)"
read
Если я открываю xfce4-terminal, выполняю этот скрипт, и, например, pdf-файл открывается программой atril, то после запуска atril я могу закрыть терминал и atril останется работать. Если же я выполню скрипт командой xfce4-terminal -x myscript (т.е. в новом окне xfce4-terminal), то запущенная xdg-open программа будет работать ровно до тех пор, пока не завершится выполнение скрипта и не закроется сам терминал. Без «read» в конце при таком сценарии просто ничего не запускалось, с «read» запущенная программа работает до тех пор, пока не нажму «enter» в открывшемся окне терминала. При этом, и в htop, и в xfce4-taskmanager, atril отображается не как потомок скрипта, а как потомок init'а. Atril здесь - как пример, то же и при открытии каталога thunar'ом. Пожалуйста, подскажите, в чём может быть проблема, и как правильно запускать скрипт в отдельном окне терминала, чтобы запускаемая xdg-open программа работала и после закрытия этого окна. Заранее спасибо.