Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: script na zavirani programu mezerníkem?  (Přečteno 1844 krát)

Satannas

  • Aktivní člen
  • *
  • Příspěvků: 262
script na zavirani programu mezerníkem?
« kdy: 05 Září 2009, 20:59:13 »
Čaute, mám menší prosbu. Celý den se vrtám v jednom skriptíku a už neví jak dál. Bude to nejspíš banalita, ale prostě v knížce a ni na netu sem to nenašel (nebo našel a nevěděl sem to, že to je ono :)). Mám nainstalované Ubuntu 9.10 Alfa4, a chci při náhledu otvírám mezerníkem Eye of gnome. Chtěl bych ho i mezerníkem zavřít, něco jako quicklook. Mám sesmolený tento skript - dál už je asi nad mé schopnosti:

#!/bin/bash

while true; do

   if [ `pidof eog` false ] ; then
      echo "eog není spuštěný"
      sleep 0.2
   else
ps -C eog -o pid= > /tmp/.eog.pid
      echo "eog běží"
      sleep 0.2
      read -n 1 tady_chci_mezernik
   case $tady_chci_mezernik in
   b) (kill -9 `cat /tmp/.eog.pid`);;
   esac
   fi
sleep 0.1
done;


Nejde mi do hlavy, že pokud to spustim v terminálu, tak ta klávesa B funguje a zavre eog, ale když to spustim bez terminalu, tak klavesa nefunguje. jo, a jeste jestli nevite ja read mezerník?
Díky za každou radu, mě už od rána lítají v hlavě samé $! && || < >  a už sem to psal i uplně jinak a furt mi to nejde :) . Jo, ty echa do terminálu mám jen pro svoje věci, abych viděl co to dělá.
« Poslední změna: 05 Září 2009, 22:54:39 od Satannas »

Satannas

  • Aktivní člen
  • *
  • Příspěvků: 262
Re: script na zavirani programu mezerníkem?
« Odpověď #1 kdy: 06 Září 2009, 16:06:13 »
Tak mě napadlo to udělat trošku jinak. Je to takové ale divné, ještě to musím ví vykoumat. Funguje to tak, že - pokud je spusten eog, tak se přemapují klávesy mezeník a Q, backslash (pomocí xmodmap). Takže se zase mezernikem ten eog zavře, a pak se to nastavi klavesnice nazpatek. Ale pokud je otevreny eog a vedle toho treba pisu neco co pouziva ty klavesy Q, tak to sbírá stisky a pak v eogu to posunuje obrazky (nez dojede pocet stisku a pak to zavre). Jeste to musim promakat :)


Satannas

  • Aktivní člen
  • *
  • Příspěvků: 262
Re: script na zavirani programu mezerníkem?
« Odpověď #2 kdy: 06 Září 2009, 18:52:53 »
ještě změna: u toho původního se pořád v cyklu provadi ten xmodmap, tak se to poupravil:
dodatek: změnil sem tu výměnu kláves na Escape.

#!/bin/bash
# keycode jsou z xmodmap.cz; charset "iso-8859-2"
zapnuto() {
xmodmap -e "keycode 65 = Escape Escape"
}
vypnuto()
{
xmodmap -e "keycode 65 = space space"
}

x=0
while true; do
   if [ `pidof eog` false ] ; then

      if [ $x = 1 ]; then
      x=0
      vypnuto
      sleep 0.2
      else
      continue
      sleep 0.2
      fi
   else

      if [ $x = 0 ]; then
      x=1
      zapnuto
      sleep 0.2
      else
      x=1
      sleep 0.2
      fi

     
   fi
sleep 0.2
done;
« Poslední změna: 06 Září 2009, 21:26:31 od Satannas »

nettezzaumana

  • Host
Re: script na zavirani programu mezerníkem?
« Odpověď #3 kdy: 15 Září 2009, 15:26:01 »
malej offtopic: (skriptem a puvodnim problemem jsem se nijak nezabyval)

while true; do
    $blah
    sleep $doba
done

^^ se pise radsi takto ;)

while sleep $doba; do
    $blah
done

.. a btw u kratsich if-else podminek je lepsi zapis spis takto

if test $podminka || $akce
if test $podminka && $akce

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: script na zavirani programu mezerníkem?
« Odpověď #4 kdy: 15 Září 2009, 16:28:01 »
.. a btw u kratsich if-else podminek je lepsi zapis spis takto

if test $podminka || $akce
if test $podminka && $akce
ted uz jsou tam, ale ty ify prebytecne, ne?
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

Satannas

  • Aktivní člen
  • *
  • Příspěvků: 262
Re: script na zavirani programu mezerníkem?
« Odpověď #5 kdy: 15 Září 2009, 17:54:12 »
jo, dikec s tim while, (k+), ... ty jasne že si tam muzu dat ty && a ||, jenže já s tím teprv nějak začínám a mě se líp pamatují ty if, else než znaky  && atd. :) . Spíš mě dělá starosti ten mezerník. Je to takové kostrbaté, jak budu mít víc času, tak to zkusím nějak líp vykoumat.

nettezzaumana

  • Host
Re: script na zavirani programu mezerníkem?
« Odpověď #6 kdy: 21 Září 2009, 09:34:23 »
ted uz jsou tam, ale ty ify prebytecne, ne?
.. uff. jasne .. chybicka se vloudila

qUAKER

  • Host
Re: script na zavirani programu mezerníkem?
« Odpověď #7 kdy: 21 Září 2009, 15:29:03 »
nebo

[ "$x" = "150" ] && uspech || neuspech

ale to je v podstatě to samý jako příkaz test

Satannas

  • Aktivní člen
  • *
  • Příspěvků: 262
Re: script na zavirani programu mezerníkem?
« Odpověď #8 kdy: 13 Října 2009, 18:37:51 »
Ciboha, teď mi to žere v 9.10 50% procesorů. Ani nevím proč, ale ten pidof to není.

 

Provoz zaštiťuje spolek OpenAlt.