次のスクリプト~/bin/cat
を使用pygmentize
して、通常の古いファイルだけでなく、可能な限り構文の強調表示可能なファイルを表示しますcat
。
#!/bin/bash
for var; do
pygmentize "$var" 2> /dev/null
if [ $? -ne 0 ]; then
/bin/cat "$var"
fi
done
これは私の作業用マシンでは正常に機能しますが、自宅のマシンでは機能しません。自宅でpygmentize
は、ファイルを認識しない場合、同じエラーメッセージが表示されますが、終了ステータスは0ですが、職場では1が返され、スクリプトが中断されます。唯一の違いは、仕事でFedoraを実行し、自宅でUbuntuを実行していることです。
$ pygmentize testfile
Error: no lexer for filename 'testfile' found
$ echo $?
0
$ file testfile
file: ASCII text
どちらも同じバージョンなので、これは奇妙です
$ pygmentize -V
Pygments version 1.4, (c) 2006-2008 by Georg Brandl.
私は中に入ることができgrep
ましError
たstderr
が、捨てずにこれを行うにはstdout
どうすればよいですか、これをどのように処理する必要がありますか?