color.sh
RED='u001b[31m'
GREEN='u001b[32m'
BLUE='u001b[34m'
YELLOW='u001b[33m'
WHITE='u001b[37m'
# use echo -e to print in certain colors
echo -e ${RED} RED
echo -e ${YELLOW} YELLOW
echo -e ${GREEN} GREEN
echo -e ${BLUE} BLUE
echo -e ${WHITE} WHITE
When typing $ ./color.sh the terminal outputs in the respective colors. However, when I type $ sh color.sh it does not output in the correct colors. Instead it gives me the output below.
-e u001b[31m RED -e u001b[33m YELLOW -e u001b[32m GREEN -e u001b[34m BLUE -e u001b[37m WHITE
Is there any way to make $ sh color.sh print in the respective colors? Thanks.
Advertisement
Answer
Use this codes
RED='e[31m' GREEN='e[32m' BLUE='e[34m' YELLOW='e[33m' WHITE='e[37m'
But better use printf
printf "${RED} REDn"
printf "${YELLOW} YELLOWn"
printf "${GREEN} GREENn"
printf "${BLUE} BLUEn"
printf "${WHITE} WHITEn"
Also take a look here