Wpis z mikrobloga

Napisałem sobie taki skrypt w bashu:

target=$(xprop -id xdotool getwindowfocus | grep 'NETWM_PID' | grep -oE '[[:digit:]]*$'); kill -9 $target

To co jest wewnątrz zmiennej target to ściągnięcie PID okna na którym jest focus, i o ile w terminalu skrypt działa to bez problemu, tak skrót dodany przez KDE (sh /home/filip/Dokumenty/kill9.sh, to samo co w terminalu) nie łapie w ogóle. Jaki może być powód?

Oczywiście przy xdotool getwindowfocus są łapki ` tylko wykop nie ogarnia

#linux #archlinux #programowanie #bash
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 0
@NewEpisode: nie wiem na ile ogarniasz Linuxa i konsolę, więc walę wszystko co mi przychodzi do głowy:
1. Wrzuc sobie zawartość target do loga (logger $target) i zerknij czy ta linijka działa.
2. Rozumiem że skrypt ma prawo do wykonywania i właścicielem jest użytkownik o nazwie filip
3. Zerknij jeszcze w necie coś takiego "export DISPlLAY:0". Zaraz poszukam dokładnie co tam trzeba wklepac.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@NewEpisode:
Najpierw w terminalu klepnij:
echo $DISPLAY

A później na początek swojego skryptu (po #!/bin/bash) dorzuć
  • Odpowiedz
@BoKoR: Niestety nic to nie dało. Dodany shebang, dodany export DISPLAY zgodny z echo $DISPLAY. Jedyne co mi się udało zrobić to skrypt uprościć. target=$(xdotool getactivewindow getwindowpid); kill -9 $target
  • Odpowiedz
@BoKoR: Z jakiegoś głupiego powodu, wystarczyło kliknąć na przycisk "znajdź plik..." i wybrać plik .sh
KDE wtedy zastąpiło skrót 'sh /home/filip/Dokumenty/kill9.sh' na '/home/filip/Dokumenty/kill9.sh' i wszystko bangla. Dzięki serdeczne mirku za pomoc.
  • Odpowiedz