The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Простой application launcher средствами shell - ?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Простой application launcher средствами shell - ?"  +/
Сообщение от bortnik (ok) on 17-Дек-14, 10:06 
Пытаюсь написать скрипты, которые делали бы следующее:

1) открывается окно терминала (urxvt или xterm)
2) в терминале shell скрипт выводит подсказку и ждет нажатия кнопки (read -n 1)
3) в зависимости от нажатой кнопки, запускается то или иное приложение
4) окно терминала закрывается, приложение остается работать

Пока что это не удается: либо терминал прекращает работу вместе с запущенным приложением, либо он не закрывается, пока это приложение не завершится.

Про "nohup ... &" я в курсе, это не помогает. Тем не менее, уверен, что задача решаема, и готовое решение давно существует. Может ли кто-нибудь подсказать, где можно найти образцы скриптов с такой функциональностью?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Простой application launcher средствами shell - ?"  +/
Сообщение от pavlinux (ok) on 18-Дек-14, 03:51 
> Пытаюсь ...
> Может ли ..

Ура, курсовые начались!

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;"'

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Простой application launcher средствами shell - ?"  +/
Сообщение от bortnik (ok) on 18-Дек-14, 07:02 
> 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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Простой application launcher средствами shell - ?"  +/
Сообщение от pavlinux (ok) on 18-Дек-14, 14:52 
> xterm -e "sh ~/launcher"

Не-е-е-е, так не честно.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру