
Я сделал функцию bash для украшения svn
вывода, эта функция показывает логи по одной строке на коммит, это здорово! Мне нравится, но если я использую ее с конвейером, она не работает. Вы можете найти ее на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 для codereview? Может там спросить?