I am trying to count all keystrokes for a given period. Currently my code looks like this:
$ timeout -s 9 10s xinput test 8 | wc -l
This returns
Killed
instead of the expected number of key presses. When i run timeout without the pipe the output is as expected
$ timeout -s 9 20s xinput test 8
key release 36
key press 42
key release 42
key press 26
key release 26
key press 28
key release 28
key press 38
key release 38
key press 46
key release 46
key press 31
key release 31
key press 41
key release 41
key press 26
key release 26
Killed
Neither changing the signal nor adding parameter --preserve-status fixes this.
I want to know why this does not work. Does 'timeout' hijack xinputs stdout somehow?
edit: However adding --foreground solves my problem. I don't understand why, though.