
出力を美しくするbash関数を作りましたsvn
。この関数はコミットごとに1行のログを表示します。素晴らしいです!気に入っていますが、パイプで使用すると動作しません。github svn-beautify
$ svn -log -l 2
r22 fabio 2014-03-27 12:38:10 +0100 (gio, 27 mar 2014) 1 line Some comments
r23 fabio 2014-03-27 13:35:17 +0100 (gio, 27 mar 2014) 1 line Some comments
と一緒に使えたらいいなと思います| grep
。
答え1
これがあります:
if [ "$SVN_COLOR" != "always" ] && (
[ $NOCOL = 1 ] || [ "$SVN_COLOR" = "never" ] || [ ! -t 1 ]
)
関数が早く戻りすぎる原因はテストです[ ! -t 1 ]
。関数をパイプにパイプすると、stdout(ファイル記述子1
)はない端末。
答え2
これは明らかに、パイプを使用した bash 関数の一般的な問題ではありません。
~$ x() { ls "$@" ; }
~$ x / | cat -n | head
1 bin
2 boot
3 dev
4 etc
5 home
6 initrd.img
7 initrd.img.old
8 lib
9 lib32
10 lib64
...コードレビュー専用の Stackexchange サイトはありませんか? そこで聞いてみてはいかがでしょうか?