Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Satannas 05 Září 2009, 20:59:13

Název: script na zavirani programu mezerníkem?
Přispěvatel: Satannas 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á.
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: Satannas 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 :)

Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: Satannas 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;
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: nettezzaumana 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
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: MacHala 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?
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: Satannas 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.
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: nettezzaumana 21 Září 2009, 09:34:23
ted uz jsou tam, ale ty ify prebytecne, ne?
.. uff. jasne .. chybicka se vloudila
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: qUAKER 21 Září 2009, 15:29:03
nebo

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

ale to je v podstatě to samý jako příkaz test
Název: Re: script na zavirani programu mezerníkem?
Přispěvatel: Satannas 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í.