我做了一个 bash 函数来美化svn
输出,这个函数显示每次提交只记录一行,太棒了!我喜欢它,但如果我将它与管道一起使用,它就不起作用。您可以在以下位置找到它:github svn 美化
$ 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-function-with-pipes-问题。
~$ 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 网站吗?或许去那里问问?