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: Michal "Tylnesh" Kohútek 28 Února 2010, 17:58:03

Název: Problematické začiatky skriptovania...
Přispěvatel: Michal "Tylnesh" Kohútek 28 Února 2010, 17:58:03
Dobrý deň, potreboval by som poradiť s jedným skriptom, ktorý som si napísal, aby som sa vyhol tomu otravnému stmavovaniu obrazovky počas dlhšej nečinnosti (napr. pozeranie filmu). Pôvodne som spravil dva veľmi jednoduché, prvý ktorý gnome-screensaver a gnome-power-manager vypol, druhý, ktorý ich opätovne zapol. Povedal som si však, že dve ikonky na tray-i sa mi príliš nepáčia a ako riešenie nie sú zrovna elegantné, preto som si kukol podmienky a napísal som toto:
Kód: [Vybrat]
#!/bin/bash
if [ "$(pidof gnome-screensaver)" && "$(pidof gnome-power-manager)"  ]
then killall gnome-screensaver && killall gnome-power-manager
else gnome-screensaver && gnome-power-manager
fi

vyhodí mi to toto
Kód: [Vybrat]
./pokus.sh: line 2: [: missing `]'

** (gnome-screensaver:18511): WARNING **: screensaver already running in this session

Vtipné je, že kým tam bolo len gnome-screensaver, všetko išlo ako malo...
Název: Re: Problematické začiatky skriptovania...
Přispěvatel: premet 28 Února 2010, 18:29:56
Zkus místo
Kód: [Vybrat]
if [ "$(pidof gnome-screensaver)" && "$(pidof gnome-power-manager)"  ]toto
Kód: [Vybrat]
if [[ "$(pidof gnome-screensaver)" && "$(pidof gnome-power-manager)"  ]]
Není to vtip, Bash to tak má  8)

Název: Re: Problematické začiatky skriptovania...
Přispěvatel: Michal "Tylnesh" Kohútek 28 Února 2010, 18:41:43
Aha... ďakujem... stále mi však zostal ten druhý problém, v prípade, keď sú tie dva procesy spustené...
BTW Je počet hranatých zátvoriek ten istý ako počet príkazov v podmienke?
Název: Re: Problematické začiatky skriptovania...
Přispěvatel: premet 28 Února 2010, 18:57:34
Myslím, že ne, ale co to vyzkoušet  ;)
nebo ekvivalentní zápis je
Kód: [Vybrat]
if [ foo ] && [ bar ]; then ....
A ten druhý problém sem nepochopil o co jde ?
Název: Re: Problematické začiatky skriptovania...
Přispěvatel: Michal "Tylnesh" Kohútek 28 Února 2010, 19:05:02
Keď ten skript pustím v konzole, tak ak je gnome-screensaver už zapnutý, tak miesto jeho vypnutia mi vypíše toto:
Kód: [Vybrat]
** (gnome-screensaver:18511): WARNING **: screensaver already running in this session
Název: Re: Problematické začiatky skriptovania...
Přispěvatel: petergula 01 Března 2010, 01:28:50
Keď ten skript pustím v konzole, tak ak je gnome-screensaver už zapnutý, tak miesto jeho vypnutia mi vypíše toto:
Kód: [Vybrat]
** (gnome-screensaver:18511): WARNING **: screensaver already running in this session

Co ma ten script robit? Nie je mi uplne jasna podstata toho o co sa snazis.
Naozaj chces aby to robilo toto:
Ak su oba pustene, zabi ich oba, inak(ak nie su oba naraz spustene) spusti oba po sebe. Druha vec je, ze gnome-power-manager nevracia chod do shellu, ale ho blokuje, cize ak ho chces spustat tak s & na konci.

Lebo podla mna robi to, co si mu napisal, aby robil. Mas spusteny iba jeden process z tych dvoch, tak ich nezabija(podmienka je false, lebo true je iba ak oba bezia subezne), ale pokusi sa spustit oba procesy(taku logiku si chcel?), co skonci chybou, ze gnome-screensaver ti uz bezi.