0

Logkeys 不支持-o -作为标准输出(它会生成一个名为 的文件-)。知道如何将其输出文件重新定向到标准输出吗?这也不起作用:

sudo logkeys -m colmak.us.map  -o /dev/stdout  -s
logkeys: Error opening output file '/dev/stdout': No such file or directory
4

2 回答 2

2

您可以创建一个临时命名管道或文件,然后 cat 该文件,或 tail -f 该文件,

包装你的命令,

sudo logkeys -m colmak.us.map  -o /dev/stdout  -s

在一个检查文件名参数的 shellscript 中,或者使用提供的文件,或者为标准输出(“-”或“/dev/stdout”)构建一个临时文件,

#!/bin/bash
tempfile="nil";
outfile=${1:-"-"};
#generate temporary filename
[[ $outfile == "/dev/stdout" ]] && outfile="-";
[[ $outfile == "-" ]] && outfile=`mktemp` && tempfile=$outfile;
[[ $1 ]] && sudo logkeys -m colmak.us.map  -o $tempfile  -s
[[ $tempfile != "nil" ]] && cat $tempfile && echo rm $tempfile

回应命令,产生,

$ ./aliasout.sh /tmp/myfile
sudo logkeys -m colmak.us.map -o /tmp/myfile -s
$ ./aliasout.sh /dev/stdout
sudo logkeys -m colmak.us.map -o /tmp/tmp.ghTUwmOzdS -s
rm /tmp/tmp.ghTUwmOzdS
$ ./aliasout.sh -
sudo logkeys -m colmak.us.map -o /tmp/tmp.heRi4ntAM0 -s
rm /tmp/tmp.heRi4ntAM0
于 2013-10-11T21:51:39.503 回答
1

研究表明logkeys使用. 我认为您需要确保您的版本是使用. 您是否尝试过使用普通重定向来捕获输出?stdoutstdout.patch

于 2013-10-11T21:37:11.387 回答