Ho il seguente script per eseguire il comando "xset led" su keypress ma non riesco a farlo funzionare perché il comando non viene effettivamente eseguito. Ecco la sceneggiatura:
#!/bin/bash
res=$(echo "$(xset q)" | tr ";" "Scroll Lock")
if [[ $res == *"Scroll Lock: on"* ]]; then
echo $(xset led on)
else
echo $(xset led off)
fi
Tuttavia quando eseguo echo $(xset led on)nella shell funziona. L'esecuzione dello script sopra genera una riga vuota, però.
xsetall'interno di una subshell, è possibile sostituire echo $(xset led on)con un semplice xset led oncon praticamente lo stesso effetto. Inoltre, potresti voler mettere set +xqualsiasi cosa nel tuo script per fare in modo che Bash registri ogni riga che esegue: in questo modo saprai quando qualcosa si rompe.
$resvirgolette per il confronto e userei un singolo segno di uguale, cioèif [ "$res" = *"Scroll Lock: on"* ]; then ... fi, ma sembra che il tuo script dovrebbe funzionare indipendentemente. Oh, matrprenderà solo il primo personaggioScroll Lock, non il tutto!