Przekierowanie strumienia do skryptu

Potrzebujesz pomocy z C, C++, perl, python, itp.
MrDarkenRahl
Posty: 49
Rejestracja: 15 lutego 2012, 19:21

Przekierowanie strumienia do skryptu

Post autor: MrDarkenRahl »

Próbuje przekierować wynik polecenia irw (odebrane komendy z pilota) do mojego skryptu. Przykładowe kody z pilota:
root@bananapi / # irw
73 0 KEY_VOLUMEUP /dev/input/event2
72 0 KEY_VOLUMEDOWN /dev/input/event2
71 0 KEY_MUTE /dev/input/event2
Jako że 3 kolumna jest unikatowa i prosta w obsłudze, skrypt wygląda tak:
#!/bin/sh
case $3 in
"KEY_VOLUMEUP") amixer set Master 1+ ;;
"KEY_VOLUMEDOWN") amixer set Master 1- ;;
esac

Jeżeli w konsoli zrobię tak:
root@bananapi /home/skrypty # ./pilot.sh 73 0 KEY_VOLUMEUP /dev/input/event2
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined penum
Playback channels: Mono
Limits: Playback 0 - 63
Mono: Playback 57 [90%]
To wszystko ładnie działa. Niestety nie wiem, jak przekierować wyniki "irw" do mojego skryptu, bo "irw | ./pilot.sh" nie działa.
liske1
Beginner
Posty: 110
Rejestracja: 12 maja 2012, 13:54

Post autor: liske1 »

W skrypcie napisz "irw" i wtedy skrypt wykonuje funkcje irw. (jak ma ten skrypt zawsze wykonywać podaną akcję (irw) ) .
np:

Kod: Zaznacz cały

[color=#333333][I]#!/bin/sh[/I][/color]
[color=#333333][I]case $3 in
[/I][/color][B]irw[/B]
[color=#333333][I]"KEY_VOLUMEUP") amixer set Master 1+ ;;[/I][/color]
[color=#333333][I]"KEY_VOLUMEDOWN") amixer set Master 1- ;;[/I][/color]
[color=#333333][I]esac
[/I][/color]


Nie jestem na 100% pewny czy o to Tobie chodziło.
MrDarkenRahl
Posty: 49
Rejestracja: 15 lutego 2012, 19:21

Post autor: MrDarkenRahl »

Nie o to chodziło. Chcę uruchomić proces irw w tle, aby ciągle sprawdzał jakie komendy przychodzą i przekierowywał je do wykonania przez skrypt pilot.sh, bo przy Twojej konstrukcji skrypt wykona się tylko raz i wyłączy.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

To opakuj go w nieskończoną pętlę.
ODPOWIEDZ