2017-02-22 7 views
1

Я пытаюсь добавить сложный псевдоним git, который будет эхо-сообщения, когда он выполняет команды. Я хотел бы раскрасить некоторые сообщения (красный для ошибки и т. Д.).Git alias output coloring in function

[alias] 
    test = !"f() { echo "\033[31mHello\033[0m World"; }; f" 

Однако, когда я исполняю псевдоним я получаю сообщение об ошибке:

bad config line X in file .gitconfig` 

Запуск той же команды echo "\033[31mHello\033[0m World" в терминале окрашивает просто отлично.

ответ

3

Обратные косые черты должны быть экранированы. Из документации git-config ...

Inside double quotes, double quote " and backslash \ characters must be escaped: use \" for " and \ for .

The following escape sequences (beside \" and \) are recognized: \n for newline character (NL), \t for horizontal tabulation (HT, TAB) and \b for backspace (BS). Other char escape sequences (including octal escape sequences) are invalid.

Это будет работать.

test = !"f() { echo \"\\033[31mHello\\033[0m World\"; }; f" 

Но если ваши псевдонимы настолько сложны, что вам нужно определить функции, которые могут превратиться в большой беспорядок. Я бы рекомендовал поместить эти функции в свой собственный файл и найти его.

test = !"source ~/.gitfuncs; f" 

$ cat ~/.gitfuncs 
f() { echo "\033[31mHello\033[0m World"; }; 
+0

Я был близок, возможно, я пропустил один из побегов. Я планирую вытащить его, как только закончу работу над ним, спасибо за информацию! –