Когда я выполняю grep
изнутри gnome-терминала, я получаю цветной вывод - легко заметное совпадение, номера строк (-n) с разными цветами и т. д.
Но когда я выполняю точно такой же grep
через bash-скрипт Я получаю вывод на плоскость, без раскраски
Есть ли способ получить цветной выход с помощью скрипта bash?
Использование опции --color работает для меня, когда я запускаю grep внутри скриптов оболочки.
Вот пример того, что вы хотите.
grep -n --color=auto "PATTERN" FILE
Вот небольшой скрипт, который поможет вам понять, как работает 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, Highlighting и colors.
[d3 ]Вы пытались добавить эти псевдонимы к своему ~/.bashrc?
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'