I have 2 scripts.
script.conf
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
# set -o xtrace
[ -f $HOME/Templates/bash_colors.sh ] && source $HOME/Templates/bash_colors.sh
INFO=${INFO:-"1"}
DEBUG=${DEBUG:-"0"}
ERROR=${ERROR:-"1"}
Red=${Red:-}
Yellow=${Yellow:-}
Cyan=${Cyan:-}
Color_Off=${Color_Off:-}
__msg_error() {
    [[ "${ERROR}" == "1" ]] && echo -e "${Red}[ERROR]: $*${Color_Off}";
}
__msg_debug() {
    [[ "${DEBUG}" == "1" ]] && echo -e "${Yellow}[DEBUG]: $*${Color_Off}";
}
__msg_info() {
    [[ "${INFO}" == "1" ]] && echo -e "${Cyan}[INFO]: $*${Color_Off}";
}
and testConf.sh
#!/bin/bash
# INFO="0"
scriptDir="${BASH_SOURCE%/*}"
[ -f ${scriptDir}/script.conf ] && source ${scriptDir}/script.conf
INFO="0"
__msg_error "Test error1"
__msg_info "Test Info"
__msg_error "Test error2"
__msg_debug "Test debug"
The strange thing is if set INFO to 0 I would expect that both error messages would be echoed which is not the case. Just the first will printed. I don't understand why. Maybe you have an idea?
It seem like the script is stopped when INFO is 0.
See the trace:
++ INFO=1
++ DEBUG=0
++ ERROR=1
++ Red='\033[0;31m'
++ Yellow='\033[0;33m'
++ Cyan='\033[0;36m'
++ Color_Off='\033[0m'
+ INFO=0
+ __msg_error 'Test error1'
+ [[ 1 == \1 ]]
+ echo -e '\033[0;31m[ERROR]: Test error1\033[0m'
[ERROR]: Test error1
+ __msg_info 'Test Info'
+ [[ 0 == \1 ]]
But why?
bash_colors.sh
#!/bin/bash
# src: https://stackoverflow.com/a/28938235/1959528
# Reset
Color_Off='\033[0m'       # Text Reset
# Regular Colors
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
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White
# Bold
BBlack='\033[1;30m'       # Black
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green
BYellow='\033[1;33m'      # Yellow
BBlue='\033[1;34m'        # Blue
BPurple='\033[1;35m'      # Purple
BCyan='\033[1;36m'        # Cyan
BWhite='\033[1;37m'       # White
# Underline
UBlack='\033[4;30m'       # Black
URed='\033[4;31m'         # Red
UGreen='\033[4;32m'       # Green
UYellow='\033[4;33m'      # Yellow
UBlue='\033[4;34m'        # Blue
UPurple='\033[4;35m'      # Purple
UCyan='\033[4;36m'        # Cyan
UWhite='\033[4;37m'       # White
# Background
On_Black='\033[40m'       # Black
On_Red='\033[41m'         # Red
On_Green='\033[42m'       # Green
On_Yellow='\033[43m'      # Yellow
On_Blue='\033[44m'        # Blue
On_Purple='\033[45m'      # Purple
On_Cyan='\033[46m'        # Cyan
On_White='\033[47m'       # White
# High Intensity
IBlack='\033[0;90m'       # Black
IRed='\033[0;91m'         # Red
IGreen='\033[0;92m'       # Green
IYellow='\033[0;93m'      # Yellow
IBlue='\033[0;94m'        # Blue
IPurple='\033[0;95m'      # Purple
ICyan='\033[0;96m'        # Cyan
IWhite='\033[0;97m'       # White
# Bold High Intensity
BIBlack='\033[1;90m'      # Black
BIRed='\033[1;91m'        # Red
BIGreen='\033[1;92m'      # Green
BIYellow='\033[1;93m'     # Yellow
BIBlue='\033[1;94m'       # Blue
BIPurple='\033[1;95m'     # Purple
BICyan='\033[1;96m'       # Cyan
BIWhite='\033[1;97m'      # White
# High Intensity backgrounds
On_IBlack='\033[0;100m'   # Black
On_IRed='\033[0;101m'     # Red
On_IGreen='\033[0;102m'   # Green
On_IYellow='\033[0;103m'  # Yellow
On_IBlue='\033[0;104m'    # Blue
On_IPurple='\033[0;105m'  # Purple
On_ICyan='\033[0;106m'    # Cyan
On_IWhite='\033[0;107m'   # White
 
     
    