📜 ⬆️ ⬇️

Color man or how to decorate echo output

When you write even a minimal script, you often use echo hints.
Agree to the " color man " is much more pleasant to read, so why not color the echo output?
it's easy enough.
So…

Task:
Color the text string to be displayed via the echo command.
those. color these very tips

What do you need:
1) man echo
www.opennet.ru/man.shtml?topic=echo&category=1

From it we need it for sure
')
echo -e # -e echo "backslash escapes" ; \n - , \t -
echo -n # -n echo , .
echo -en # .




2) A good article with examples "Controlling the Linux console" RUS
c-reaction.net/content/204

Good article with examples of "Colorizing Scripts" ENG
www.faqs.org/docs/abs/HTML/colorizing.html

Go:

To begin with, at least with one eye we will look at man echo rus, and then we will look at how to use color
www.opennet.ru/man.shtml?topic=echo&category=1

Go to Color Management:

tput sgr0 ""

\033[0m
\033[1m ( )
\033[2m (-, )
\033[4m
\033[5m
\033[7m ( , -- )

\033[22m
\033[24m
\033[25m
\033[27m

\033[30
\033[31
\033[32
\033[33
\033[34
\033[35
\033[36
\033[37

\033[40
\033[41
\033[42
\033[43
\033[44
\033[45
\033[46
\033[47



Table of colors and backgrounds:


black 30 40 \033[30m \033[40m
red 31 41 \033[31m \033[41m
green 32 42 \033[32m \033[42m
yellow 33 43 \033[33m \033[43m
blue 34 44 \033[34m \033[44m
magenta 35 45 \033[35m \033[45m
cyan 36 46 \033[36m \033[46m
grey 37 47 \033[37m \033[47m



Combination of these control sequences is allowed.
For example, \ 033 [1m \ 033 [5m \ 033 [36m can be replaced by the equivalent sequence \ 033 [1; 5; 36m.

Example:
#!/bin/sh
#
#
#
echo -en "\033[37;1;41m \033[0m"




Another example:
#!/bin/sh
#
# sh
#
#
export PS1= "\[\033[1;30m\][\[\033[0m\]\t\[\033[1;30m\];\
\[\033[0m\]\W\[\033[1;30m\]]\[\033[36;1m\]|\[\033[0m\] "

echo "Now runing a new copy of shell width color prompt"
echo -en "use \033[1;36mexit\033[0m command or"
echo -e "\033[1;36m^D\033[0m to return back"
sh
#
# ,
# "\[" "\]"
# , shell
# .
# .
#




For the convenience of use it is possible to color and add. assign properties to variables:
RED= '\033[0;31m' # ${RED}
GREEN= '\033[0;32m' # ${GREEN}




The .sh file must be in UNIX format and encoded in UTF-8

And finally - one good example with all the buns:
#!/bin/sh
# echo
# echo color
#

clear #

#,
#

#black 30 40 \033[30m \033[40m
#red 31 41 \033[31m \033[41m
#green 32 42 \033[32m \033[42m
#yellow 33 43 \033[33m \033[43m
#blue 34 44 \033[34m \033[44m
#magenta 35 45 \033[35m \033[45m
#cyan 36 46 \033[36m \033[46m
#white 37 47 \033[37m \033[47m

# :
BOLD= '\033[1m' # ${BOLD} # ( )
DBOLD= '\033[2m' # ${DBOLD} # (-, )
NBOLD= '\033[22m' # ${NBOLD} #
UNDERLINE= '\033[4m' # ${UNDERLINE} #
NUNDERLINE= '\033[4m' # ${NUNDERLINE} #
BLINK= '\033[5m' # ${BLINK} #
NBLINK= '\033[5m' # ${NBLINK} #
INVERSE= '\033[7m' # ${INVERSE} # ( , -- )
NINVERSE= '\033[7m' # ${NINVERSE} #
BREAK= '\033[m' # ${BREAK} #
NORMAL= '\033[0m' # ${NORMAL} #

# :
BLACK= '\033[0;30m' # ${BLACK} #
RED= '\033[0;31m' # ${RED} #
GREEN= '\033[0;32m' # ${GREEN} #
YELLOW= '\033[0;33m' # ${YELLOW} #
BLUE= '\033[0;34m' # ${BLUE} #
MAGENTA= '\033[0;35m' # ${MAGENTA} #
CYAN= '\033[0;36m' # ${CYAN} #
GRAY= '\033[0;37m' # ${GRAY} #

# () (bold) :
DEF= '\033[0;39m' # ${DEF}
DGRAY= '\033[1;30m' # ${DGRAY}
LRED= '\033[1;31m' # ${LRED}
LGREEN= '\033[1;32m' # ${LGREEN}
LYELLOW= '\033[1;33m' # ${LYELLOW}
LBLUE= '\033[1;34m' # ${LBLUE}
LMAGENTA= '\033[1;35m' # ${LMAGENTA}
LCYAN= '\033[1;36m' # ${LCYAN}
WHITE= '\033[1;37m' # ${WHITE}

#
BGBLACK= '\033[40m' # ${BGBLACK}
BGRED= '\033[41m' # ${BGRED}
BGGREEN= '\033[42m' # ${BGGREEN}
BGBROWN= '\033[43m' # ${BGBROWN}
BGBLUE= '\033[44m' # ${BGBLUE}
BGMAGENTA= '\033[45m' # ${BGMAGENTA}
BGCYAN= '\033[46m' # ${BGCYAN}
BGGRAY= '\033[47m' # ${BGGRAY}
BGDEF= '\033[49m' # ${BGDEF}

tput sgr0 # ""

#
echo ""
echo -n " "
echo -e "${BOLD}${BGMAGENTA}${LGREEN} DNS323 ${NORMAL}"
echo ""
echo -en "${LYELLOW} 1 ${LGREEN} telnet ${GRAY}(?)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 2 ${LGREEN} & ${GRAY}()${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 3 ${LGREEN} Transmission (${GREEN}Start${NORMAL}, ${LRED}Stop${NORMAL}, ${CYAN}Upgrade${NORMAL}) ${GRAY}()${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 4 ${LGREEN} (cp & rsync) ${GRAY}()${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 5 ${LGREEN} ${GRAY}()${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 6 ${LGREEN} fun-plug & IPKG ${GRAY}()${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 7 ${LGREEN} (${LYELLOW} n${LGREEN}load) ${GRAY}(?)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 8 ${LGREEN} (${LYELLOW} h${LGREEN}top) ${GRAY}(?)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 9 ${LGREEN} Midnight Commander (${LYELLOW} m${LGREEN}c) ${GRAY}(?)${NORMAL}\n"
echo ""
echo -en "${LMAGENTA} q ${LGREEN} ${NORMAL}\n"
echo ""
echo "( , , , )"
echo ""
tput sgr0



ps: Tell me, please, which blog is better to publish?

UPD1: transferred to Linux for everyone , because This is the closest blog on the subject, I think.
UPD2: Thank you aco for the picture, briefly and clearly =)
image

Source: https://habr.com/ru/post/119436/


All Articles