saída da função bash para pipe

saída da função bash para pipe

Fiz uma função bash para embelezar svna saída, essa função mostra os logs de uma linha por commit, é ótimo! Gosto, mas se usar com cano não funciona. Você pode encontrá-lo emgithub svn-embelezar

$ 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

seria bom se eu pudesse usá-lo com | grep.

Responder1

Você tem isto:

if [ "$SVN_COLOR" != "always" ] && ( 
        [ $NOCOL = 1 ] || [ "$SVN_COLOR" = "never" ] || [ ! -t 1 ]
)

É o [ ! -t 1 ]teste que está fazendo com que sua função retorne muito cedo. Quando você canaliza sua função para um canal, stdout (descritor de arquivo 1) énãoum terminal.

Responder2

Definitivamente, este não é um problema geral de função bash com 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

... não existe um site Stackexchange especial para revisão de código? Talvez pergunte lá?

informação relacionada