Пытаюсь написать скрипты, которые делали бы следующее:1) открывается окно терминала (urxvt или xterm)
2) в терминале shell скрипт выводит подсказку и ждет нажатия кнопки (read -n 1)
3) в зависимости от нажатой кнопки, запускается то или иное приложение
4) окно терминала закрывается, приложение остается работатьПока что это не удается: либо терминал прекращает работу вместе с запущенным приложением, либо он не закрывается, пока это приложение не завершится.
Про "nohup ... &" я в курсе, это не помогает. Тем не менее, уверен, что задача решаема, и готовое решение давно существует. Может ли кто-нибудь подсказать, где можно найти образцы скриптов с такой функциональностью?
> Пытаюсь ...
> Может ли ..Ура, курсовые начались!
xterm -e 'bash -c "while read -p \"[G]oogole [F]irefox?\" i; do case "\$i" in [Gg]* ) exec google-chrome; break;; [Ff]* ) exec firefox; break;; esac; done;"'
> xterm -e 'bash -c "while read -p \"[G]oogole [F]irefox?\" i; do case
> "\$i" in [Gg]* ) exec google-chrome; break;; [Ff]* ) exec firefox;
> break;; esac; done;"'Спасибо! Но это не совсем то, что нужно: xterm не закрывается после запуска приложения.
Но мне таки удалось добиться нужного эффекта.
Команда для запуска xterm:
xterm -e "sh ~/launcher"
Скрипт launcher:
#!/bin/sh
echo "b browser"
echo "d stardict"
echo "f firefox"
echo "g geany"
echo "k keepassx"
echo "m mail client"
read -n 1 key
COM=""
if [ "$key" = "b" ] ; then
COM="chromium"
elif [ "$key" = "d" ] ; then
COM="stardict"
elif [ "$key" = "f" ] ; then
COM="firefox"
elif [ "$key" = "g" ] ; then
COM="geany"
elif [ "$key" = "k" ] ; then
COM="keepassx"
elif [ "$key" = "m" ] ; then
COM="thunderbird"
fi
if [ "$COM" != "" ] ; then
nohup $COM & 2>&1 >/dev/null
sleep 0.1
fi
> xterm -e "sh ~/launcher"Не-е-е-е, так не честно.