1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/bin/bash
# hash-example.sh: Colorizing text.
# Author: Mariusz Gniazdowski <mariusz.gn-at-gmail.com>
. Hash.lib # Load the library of functions.
hash_set colors red "\033[0;31m"
hash_set colors blue "\033[0;34m"
hash_set colors light_blue "\033[1;34m"
hash_set colors light_red "\033[1;31m"
hash_set colors cyan "\033[0;36m"
hash_set colors light_green "\033[1;32m"
hash_set colors light_gray "\033[0;37m"
hash_set colors green "\033[0;32m"
hash_set colors yellow "\033[1;33m"
hash_set colors light_purple "\033[1;35m"
hash_set colors purple "\033[0;35m"
hash_set colors reset_color "\033[0;00m"
# $1 - keyname
# $2 - value
try_colors() {
echo -en "$2"
echo "This line is $1."
}
hash_foreach colors try_colors
hash_echo colors reset_color -en
echo -e '\nLet us overwrite some colors with yellow.\n'
# It's hard to read yellow text on some terminals.
hash_dup colors yellow red light_green blue green light_gray cyan
hash_foreach colors try_colors
hash_echo colors reset_color -en
echo -e '\nLet us delete them and try colors once more . . .\n'
for i in red light_green blue green light_gray cyan; do
hash_unset colors $i
done
hash_foreach colors try_colors
hash_echo colors reset_color -en
hash_set other txt "Other examples . . ."
hash_echo other txt
hash_get_into other txt text
echo $text
hash_set other my_fun try_colors
hash_call other my_fun purple "`hash_echo colors purple`"
hash_echo colors reset_color -en
echo; echo "Back to normal?"; echo
exit $?
# On some terminals, the "light" colors print in bold,
# and end up looking darker than the normal ones.
# Why is this?
|