be smarter to find a usable echo command

This commit is contained in:
Stéphane Lesimple 2018-01-18 11:00:40 +01:00
parent 995620a682
commit 3be5e90481
1 changed files with 17 additions and 3 deletions

View File

@ -97,17 +97,31 @@ global_critical=0
global_unknown=0
nrpe_vuln=""
echo_cmd=''
__echo()
{
opt="$1"
shift
_msg="$@"
if [ -z "$echo_cmd" ]; then
# find a sane `echo` command
# we'll try to avoid using shell builtins that might not take options
if which echo >/dev/null 2>&1; then
echo_cmd=`which echo`
else
[ -x /bin/echo ] && echo_cmd=/bin/echo
[ -x /system/bin/echo ] && echo_cmd=/system/bin/echo
fi
# still empty ? fallback to builtin
[ -z "$echo_cmd" ] && echo_cmd=echo
fi
if [ "$opt_no_color" = 1 ] ; then
# strip ANSI color codes
_msg=$(/bin/echo -e "$_msg" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g")
_msg=$($echo_cmd -e "$_msg" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g")
fi
# explicitly call /bin/echo to avoid shell builtins that might not take options
/bin/echo $opt -e "$_msg"
$echo_cmd $opt -e "$_msg"
}
_echo()