如何将logkeys重定向到标准输出?

时间:2013-10-11 21:25:35

标签: linux

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

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

2 个答案:

答案 0 :(得分:2)

你可以创建一个临时命名管道或文件,然后cat该文件,或者尾随-f文件,

包裹你的命令,

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

在一个shellcript中,它检查filename参数,并使用提供的文件,或为stdout构建临时文件(“ - ”或“/ 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

答案 1 :(得分:1)

研究表明logkeysfunny stuff with stdout。我认为您需要确保使用stdout.patch构建您的版本。您是否尝试使用常规重定向来捕获输出?