So leiten Sie einen Befehl vom Konsolen-Shell-Skript (SSH) an den XServer weiter

So leiten Sie einen Befehl vom Konsolen-Shell-Skript (SSH) an den XServer weiter

Ich versuche, einen Wert vom XServer abzurufen, der auf einem Raspberry Pi läuft. Der Befehl DISPLAY=:0 xssstate -ifunktioniert in der Befehlszeile, aber nicht beim Ausführen des Skripts.

Das lokale Ausführen des Skripts funktioniert einwandfrei. Wenn es jedoch über SSH ausgeführt wird, funktioniert es nicht.

Skript:

enter code here

#!/bin/bash

# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((10*1000))

triggered=0

while [ 1 -eq 1 ]
do
sleep 1
sstime=$(DISPLAY=:0 xssstate -i)
echo "idletime $IDLE_TIME"
echo "sstime $sstime"
if [ "$sstime" -gt "$IDLE_TIME" ] || [ "$triggered" -eq 0 ]
then
        echo 235 > /sys/waveshare/rpi_backlight/brightness
        triggered=1
elif [ "$sstime" -lt "$IDLE_TIME" ] || [ "$triggered" -eq 1 ]
then
        echo 0 > /sys/waveshare/rpi_backlight/brightness
        triggered=0
else
        triggered=0
fi

done

Ausgabe:

No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
./backLTctrl.sh: line 19: [: : integer expression expected
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
No protocol specified
Cannot open display.
idletime 10000
sstime
./backLTctrl.sh: line 15: [: : integer expression expected
./backLTctrl.sh: line 19: [: : integer expression expected

verwandte Informationen