Logkeys 不支持 -o -
作为标准输出(它生成一个名为 -
的文件)。知道如何将其输出文件重定向到标准输出吗?这也不起作用:
sudo logkeys -m colmak.us.map -o /dev/stdout -s
logkeys: Error opening output file '/dev/stdout': No such file or directory
您可以创建一个临时的命名管道或文件,然后 cat 该文件,或者 tail -f 该文件,
包装你的命令,
sudo logkeys -m colmak.us.map -o /dev/stdout -s
在检查文件名参数的 shellscript 中,或者使用提供的文件,或者为 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
我是一名优秀的程序员,十分优秀!