Я пытаюсь сделать сценарий оболочки для записи макросов путем записи индивидуальных кодов клавиш при каждом нажатии кнопки.
Команда для этого выглядит так:
xev | grep -A2 --line-buffered '^Key*' | sed -n '/keycoe /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 /p'
Вы можете запустить его в терминале, чтобы увидеть, как он работает.
По сути, он выплевывает тонну числовых кодов (кодов клавиш) с пробелами между ними, например так:
51
51
42
42
53
30
30
53
И так далее. Мне нужно захватить каждый из этих кодов по отдельности и поместить их в список / строку, которая будет выглядеть примерно так:
xdotool keydown 51 && xdotool keyup 51 && xdotool keydown 42 && xdotool keyup 42
И на это идет. (каждый раз, когда появляется номер, он назначается как keydown, каждый раз, когда он появляется во второй раз, он читается как keyup, чтобы избежать циклов)
Как я могу сделать это в сценарии оболочки? Как я могу заставить сценарий оболочки брать каждый отдельный код ключа, когда он происходит, и сохранять его в переменной?
Сценарий сам по себе достаточно прост, но я не знаю, как получить отдельные коды, так как единственное, что отделяет коды - это разрыв строки.