Як отримати кольоровий вихід з bash script?


9

Коли я виконую grepзсередини gnome-terminal, я отримую кольоровий вихід - легко помітний збіг, рядки (-n) з різними кольорами тощо

Але коли я виконую точно таку ж grepкоманду через скрипт bash, я отримую площинний висновок, без забарвлення

Чи є спосіб отримати кольоровий вихід, використовуючи bash script?

Відповіді:


9

Використання цього --colorпараметра працює для мене, коли я запускаю grep всередині скриптів оболонки.

Ось приклад того, що ви хочете.

grep -n --color=auto "PATTERN" FILE

Справді дякую. Я переглянув сторінку grep man, але --color[=WHEN], --colour[=WHEN]мене збентежив, хоча це пояснюється чудово
zetah

3

Ось невеликий сценарій, який допоможе вам зрозуміти, як працює tput з bash

#!/bin/bash
#@auth kesavan.muthuvel
#@desc - bash with colors :)

B=`tput bold`           #BOLD
D=`tput dim`            #DIM
U=`tput sgr 0 1`        #UNDERLINE
U2=`tput smul`          #UNDERLINE2
NOU=`tput rmul`         #NO UNDERLINE
H=`tput smso`           #HIGHLIGHT
X=`tput sgr0`           #RESET
C='tput setaf '         #COLOR


for i in 0 1 2 3 4 5 6 7 ; do
        c=`$C$i` && echo $c${B}I${U}always$NOU $D love \
           ${U2}colors$NOU \& $c${H}GNU/Linux$X
done;

Це дозволить надрукувати наступний вихід у форматах BOLD , UNDERLINE, виділення та кольорах.

BASH Script друкує з текстовим формуванням та кольорами


0

Ви намагалися додати ці псевдоніми до своїх ~/.bashrc?

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

Так, ці рядки є, але вихід, на жаль, однаковий (без фарбування), коли grep запускається з bash script.
зета

Псевдоніми оболонки за замовчуванням впливають лише на інтерактивні сеанси оболонки. Вам або потрібно 1) додати --colorпараметр до grepкоманди прямо (безпечно) або 2) включити параметр expand_aliasesоболонки і source ~/.bashrc(схильний до проблем через можливі інші псевдоніми). Ви можете уточнити 1) та визначити змінну GREP="grep --color=auto"та пізніше використовувати $GREPзамість grepскрізь у вашому сценарії.
Девід Фоерстер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.