Я не могу передать вывод терминала в файл

В то время как терминал 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

0
задан 24 December 2013 в 00:03

3 ответа

Вывод буферизуется, поэтому в файл ничего не попадает, пока модуль записи (xinput) не сбросит его.
Для форсирования небуферизованного вывода вы можете использовать

stdbuf -o0 xinput test 5 >out
0
ответ дан 24 December 2013 в 00:03

Как ни странно, перенаправление работает нормально (я только что проверил это с помощью мыши) ... Кажется, это проблема, характерная для виртуального устройства.

Что ж, это была намного большая, более странная проблема, чем я думал. Короткий ответ: он буферизуется, и когда вы удерживаете нажатие Control + C, этот буфер теряется . Теперь я понятия не имею , почему он буферизуется для виртуального устройства, а не для физического ... Это выше моего уровня оплаты.

Как обойти это довольно просто (опять же из Stephane Chazelas в Unix & Linux ):

stdbuf -oL xinput test 5 > test

И причина, по которой вы видели некоторые выходные данные, заключается в том, что они записывают виртуальную клавиатуру в активное окно (как это делала бы физическая клавиатура).

0
ответ дан 24 December 2013 в 00:03

Попробуйте это,

xinput test 5 > text.txt
0
ответ дан 24 December 2013 в 00:03

Другие вопросы по тегам:

Похожие вопросы: