Gebruikershulpmiddelen

Site-hulpmiddelen


li_bash-scripting-colors

Verschillen

Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.

Link naar deze vergelijking

Beide kanten vorige revisie Vorige revisie
Volgende revisie
Vorige revisie
li_bash-scripting-colors [2019/07/24 18:14]
127.0.0.1 Externe bewerking
— (huidige)
Regel 1: Regel 1:
-Bash: Using Colors\\ 
-[[http://​www.csc.uvic.ca/​~sae/​seng265/​fall04/​tips/​s265s047-tips/​bash-using-colors.html|tips bash using colors]]\\ 
- 
-Question: 
-  How to use colors to display information in bash? 
- 
-Answer: 
-  Use ANSI escape sequences to set text properties like foreground and background colors. 
- 
-Example: 
-  echo -e "​\e[1;​34mThis is a blue text.\e[0m"​ 
- 
-Explanation:​ 
-  Bash uses numeric codes to set attributes of the text to be displayed. 
- 
-Attribute codes: 
-  00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed 
- 
-Text color codes: 
-  30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white 
- 
-Background color codes: 
-  40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white 
- 
-In the example above, me used the ANSI escape sequence \e[attribute code;text color codem to display a blue text. Therefore, we have to use -e option in calling echo to escape the input. Note that the color effect had to be ended by \e[0m to prevent the display of the prompt with different colors. However, the effects are sometimes interesting. I encourage you to play around with it. 
- 
-To have a background, we must use the background color codes. The sequence then becomes \e[attribute code;text color code;​background color codem. As you can guess, any missing code is simply taken as zero value by bash. Provided you shell supports 8-bit colors (the new Cygwin version 1.43 and a00.seng.engr do), you can display a colored welcome message when you log into bash by typing the following into your .bashrc: 
- 
-  green='​\e[0;​32m'​ # '​\e[1;​32m'​ is too bright for white bg. 
-  endColor='​\e[0m'​ 
- 
-# Display welcome message 
-  echo -e "​${green}Welcome \e[5;32;47m $USER \n${endColor}"​ 
- 
-It is generally a good idea to define colors so that you can use them in anytime, anywhere in the shell session. To demonstrate this, I am defining green in .bashrc and accessing its value in echo. The username should appear with white background and green foreground, text color and should be surrounded by one space on each side. Note that I am also terminating the color effect by appending the value of endColor. 
- 
-Extension: 
-You could define a red color in .bashrc and display errors in red color in your scripts by doing something similar to the following example: 
- 
-  # swap: Swaps contents of two files 
-  #    param1: the file to be swapped 
-  #    param2: the file to be swapped 
-  function swap() # swap 2 filenames around 
-  { 
-     if [[ -e "​$1"​ && -e "​$2"​ ]]      # if files exist 
-     then 
-        local TMPFILE=tmp.$$ 
-        mv "​$1"​ $TMPFILE 
-        mv "​$2"​ "​$1"​ 
-        mv $TMPFILE "​$2"​ 
-     else 
-        echo "​\e[1;​31mError:​\e[0m Make sure the files exist."​ 
-     fi 
-  } 
- 
-So when you say something like the following, when the files don't exist: 
-swap file1 noFile or swap file1 
-you get an error statement highlighting that there has been an error. 
-Error: Make sure the files exist. 
- 
-You can also customize or colorize your bash prompt. For more information see bash-customization-of-prompt.. 
- 
-Attribution:​ 
-I explored this myself but the color codes are taken from "/​etc/​DIR_COLORS"​ (in Cygwin). 
  
li_bash-scripting-colors.1563984884.txt.gz ยท Laatst gewijzigd: 2019/07/24 18:14 door 127.0.0.1