При використанні рибної оболонки в терміналі-емуляторі(наприклад, термінатор) разом з командою, яка видає багато тексту, це може бути корисно для отримання кольорового кодування на виході. Я знаю, що сценарій може додати інформацію про колірного коду до виводу типу "grep --color = автоЯ думаю, що можна змінити рибний термінал, щоб просканувати вихід і додати це в спеціальних місцях?
Що я хочу зробити, це те, що текст "помилка"з'являється у висновку з будь-якого сценарію завжди позначається червоним кольором, а "попередження" завжди позначено жовтим кольором. Хтось знає, чи можливо це за допомогою введення файлів функцій у ~ / .config / fish / функцій реж. чи подібне?
Відповіді:
3 для відповіді № 1Це в основному порушення шару. Зазвичай вихід зовнішніх команд не повертається через оболонку. Він прямує до терміналу.
Крім того, все, що ви робите тут, може потенційно сповільнити вихід. (І через випуск риби №1396, це може бути досить екстремально).
Однак, це можливо, якщо ви завжди підходите до такої функції
function colorstuff
while read -l input
switch $input
case "*error*"
set_color red
echo $input
case "*warning*"
set_color yellow
echo $input
case "*"
set_color normal
echo $input
end
end
set_color normal
end
Використовуйте його як somecommand | colorstuff
. (А може і додати ^&1
якщо ви також бажаєте мати більш жорсткі кольори)
У моїх тестах це спричиняє помітне уповільнення, і навіть із виправленою проблемою воно все ще буде повільніше, оскільки воно має відповідати кожному рядку.
Дійсно, справжнє рішення для будь-якого інструменту, який ви використовуєте для фарбування самого себе, оскільки він знає, який вихід засоби. Все, що можна зробити - це шукати ключові слова.
0 для відповіді № 2
Для загальних потреб у колоризації випуску я додав grc
плагін до Спорядження саме для цієї мети.