Как использовать цвета в `` `complete``` выходных данных bash? - PullRequest
1 голос
/ 29 марта 2020

Я использую bash 4.4. У меня включены цвета, и я вижу цвета при нажатии, например, двойной вкладки после команды ls (файлы и папки разных цветов). Внутри моей ~ / .inputr c есть настройка set colored-stats on.

Однако я все еще не могу использовать цвета с командой complete. Например, у меня есть следующий тестовый файл:

colored_output="\033[0;31mPaul\033[0m"
echo -e $colored_output  # this prints 'Paul' in red

_hello () {
    COMPREPLY=()
    COMPREPLY+=("Bob")
    COMPREPLY+=("Alice")
    COMPREPLY+=("${colored_output}")
}

complete -o nosort -o filenames -F _hello hello

при его получении Paul печатается красным, как и должно быть. Но вещи не работают, когда вы нажимаете двойную вкладку в hello (все это отображается в цвете терминала по умолчанию):

$ hello [hitting TAB TAB now]
Bob                    Alice                  \033[0;31mPaul\033[0m  

Есть идеи, как получить цвет после автозаполнения TAB? Я думаю, мне как-то нужно сказать complete, что \ следует использовать в качестве escape-символа?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...