If [ "$@" ] is alone, err won't show up, but if you compare it ...
Code:
debug_fun ()
{
local -
set -x
[ "$1" ] && echo '$1 - Empty!'
[ "$*" ] && echo '$* - Empty!'
[ "$@" ] && echo '$@ - Empty!'
}
debug_fun_compare ()
{
local -
set -x
[ "$1" = ro ] && echo '$1 - Empty!'
[ "$*" = ro ] && echo '$* - Empty!'
[ "$@" = ro ] && echo '$@ - Empty!'
}
debug_fun
debug_fun_compare