Видео ролики бесплатно онлайн

Смотреть 365 видео

Официальный сайт 70rus 24/7/365

Смотреть видео бесплатно


predator 15.12.10 19:30 # +4
if ... then ... elif ... then ... elif... then ... fi заменить на switch
_DM_ 15.12.10 19:38 # +0
Как вариант :)
dront78 16.12.10 10:09 # +0
еще лучше словарь (map) предзаполненный или 2 массива.
_DM_ 16.12.10 10:17 # +0
А по поводу словаря можно поподробнее? :)
dront78 16.12.10 10:22 # +0
в 4 баше - ассоциативные массивы

15.12.10 18:33 _DM_

СкриптыВызов приложений

В свободное время с целью начать изучать bash собрал на коленке нечто для вызова приложений...

Если приложение ещё не запущено, запускает приложение, в противном случае - переключает нас на рабочую область (workspace), где находится приложение, и делает его активным.


Вызов firefox'а:
./summon.sh firefox


Для себя каждому приложению назначил горячую клавишу.

Для работы скрипта необходим wmctrl:
sudo apt-get install wmctrl


summon.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/bash

# ~Pe Ell
# Hotkey application summoner

# Todo:
# - work with more than 1 window opened;
# - automatic detection of application

if [ $# -lt 1 ]; then
    cat <<END
Usage: $SELF <identificator> <WM_CLASS> <command>[arguments]...

    Switch to application window in any workspace or starts the application if
    it isn't running.

    <identificator> Identificator of application need to be found.

    <WM_CLASS> "wmctrl -xl | awk '{ print \$3 }'" or substring.
   
    <command> Path to run application if no window is found (optional). todo: arguments
END

    exit 1
fi

idn=$1
wmc=$2
cmd=$3

if [ -o $wmc ]; then
        mode="auto"
       
        if [ -o $cmd ]; then cmd=$idn; fi
       
        if [ $idn = "firefox" ]; then
                wmc="Navigator.Firefox"
        elif [ $idn = "eclipse" ]; then
                wmc="Eclipse.Eclipse"
                cmd="/opt/eclipse/eclipse"
        elif [ $idn = "thunderbird" ]; then
                wmc="Mail.Thunderbird"
        elif [ $idn = "deadbeef" ]; then
                wmc="deadbeef.Deadbeef"
                unset idn
        elif [ $idn = "photoshop" ]; then
                wmc="Photoshop.exe.Wine"
                cmd="wine /home/dm/Soft/Photoshop/Photoshop.exe"
                unset idn
        elif [ $idn = "remmina" ]; then
                wmc="remmina.Remmina"
                cmd="remmina"
                unset idn
        elif [ $idn = "gcalctool" ]; then
                wmc="gcalctool.Gcalctool"
                unset idn
        elif [ $idn = "nautilus" ]; then
                wmc="nautilus.Nautilus"
                unset idn
        fi
else
        mode="manual"
fi

if [ `wmctrl -xl | awk '{ print $3 }' | grep -c "$wmc"` != 0 ]; then
        # Switching to found window in any workspace
        echo "act=switch"
        if [ -o $idn ]; then
                wmi=`wmctrl -xl | awk '{ if ( $3 == wmc ) { print $0 } }' wmc=$wmc`
        fi
       
        #temporary fix start
        i=0
        for id in $wmi; do
                i=$[i+1]
                if [ $i -lt 5 ]; then continue; fi
                idn=$idn" "$id
        done
        idn=${idn:1}
        #temporary fix end
       
    wmctrl -a "$idn"
else
        # Running application
        echo "act=run"
        $cmd
fi

echo -e "mode=$mode\nidn=$idn\nwmc=$wmc\ncmd=$cmd"

exit 0


Хотел до конца доработать полностью автоматическое определение и вызов приложения по одному идентификатору, но сил и времени так и не хватило.


Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 153)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3080 из 227 городов)
            Топ пользователей Топ блогов
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн