salida de la función bash a la tubería

salida de la función bash a la tubería

Hice una función bash para embellecer svnla salida, esta función muestra registros una línea por confirmación, ¡es genial! Me gusta, pero si lo uso con pipa no funciona. Puedes encontrarlo engithub svn-belleza

$ 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

Sería bueno si pudiera usarlo con | grep.

Respuesta1

Tienes esto:

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

Es la [ ! -t 1 ]prueba la que hace que su función regrese demasiado pronto. Cuando canaliza su función en una tubería, stdout (descriptor de archivo 1) esnouna terminal.

Respuesta2

Definitivamente, esto no es un problema general de función bash con tuberías.

~$ 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

... ¿no existe un sitio especial de Stackexchange para la revisión del código? ¿Quizás preguntar allí?

información relacionada