В то время как терминал gnome показывает вывод команды ниже, он не передает его в текстовый файл.
xinput test 5
показывает вывод в терминале, но
xinput test 5 >> text.txt
не передает его. в файл
РЕДАКТИРОВАТЬ:
«xinput test 5» показывает коды клавиш виртуальной клавиатуры. Я могу видеть вывод в терминале с «xinput test 5», но не с «xinput test 5» text.txt
Он показывает коды клавиш со встроенного устройства.
EDIT2:
Я хочу записать нажатия клавиш «на борту» в файл «xinput test 5» хорошо показывает идентификаторы нажатий клавиш в терминале, но не сохраняет его в файл с «xinput test 5 >> text.txt», он также предотвращает отображение идентификаторов нажатий клавиш в терминал. "xinput test 5 2 >> text.txt" показывает вывод в терминале, но не передает его в текстовый файл.
EDIT3:
Вы можете найти идентификатор виртуальной клавиатуры с помощью " xinput list "Интересно видеть вывод в терминале с" xinput test 5 ", но не с" xinput test 5 >> text.txt
Вывод буферизуется, поэтому в файл ничего не попадает, пока модуль записи (xinput) не сбросит его.
Для форсирования небуферизованного вывода вы можете использовать
stdbuf -o0 xinput test 5 >out
Как ни странно, перенаправление работает нормально (я только что проверил это с помощью мыши) ... Кажется, это проблема, характерная для виртуального устройства.
Что ж, это была намного большая, более странная проблема, чем я думал. Короткий ответ: он буферизуется, и когда вы удерживаете нажатие Control + C, этот буфер теряется . Теперь я понятия не имею , почему он буферизуется для виртуального устройства, а не для физического ... Это выше моего уровня оплаты.
Как обойти это довольно просто (опять же из Stephane Chazelas в Unix & Linux ):
stdbuf -oL xinput test 5 > test
И причина, по которой вы видели некоторые выходные данные, заключается в том, что они записывают виртуальную клавиатуру в активное окно (как это делала бы физическая клавиатура).
Попробуйте это,
xinput test 5 > text.txt