function init_param { typeset _a="$1$2$3" _p _q _p="${_a%%=*}" eval "$_p=; unset $_p" [[ "$_a" = "$_p" ]] || eval $_p=\"${_a#*=}\" } # init_param a=b # init_param a =b # init_param a= b # init_param a = b # init_param a = " b c "