我为文本文件编写了一个svn-hook。内容测试如下所示:
svnlook cat -t $txn $repos $file 2>/dev/null | file - | egrep -q 'text$'
我想知道是否可以用Perl完成。但是这样的事情不起作用:
svnlook cat -t $txn $repos $file 2>/dev/null | perl -wnl -e '-T' -
我正在测试此调用的退出状态($?),以查看给定文件是文本还是二进制文件。因为我从svn获取内容。我无法使用perl的普通文件检查。
我已经使用文件和二进制文件(text.txt,icon.png)对文件程序和perl进行了模拟:
find -type f | xargs -i / bin / bash -c'if $(cat {} | file - | egrep -q“text $”);然后回声“{}:text”; else echo“{}:binary”;科幻“
./ text.txt:text ./icons.png:二进制
find -type f | xargs -i / bin / bash -c'if $(cat {} | perl -wln -e“-T;”);然后回声“{}:text”; else echo“{}:binary”;科幻“
./ text.txt:text ./icons.png:文字
答案 0 :(得分:2)
您正在测试perl
的退出代码,但您从未设置过它。你需要
perl -le'exit(-T STDIN ?0:1)' < file