diff options
Diffstat (limited to 'bos-args.sh')
-rw-r--r-- | bos-args.sh | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bos-args.sh b/bos-args.sh index e0f0729..69c27d8 100644 --- a/bos-args.sh +++ b/bos-args.sh @@ -37,14 +37,15 @@ case \"\$1\" in parser_result_var+="-${argname}) $argassign; shift 2 ;; " elif [[ "${argtype["$argname"]}" == assoc ]]; then - argassign="${argassign//\$\{key/\$\{2}" - argassign="${argassign//\$\{value/\$\{3}" + argassign="${argassign//\$\{key/\$\{__args_key}" + argassign="${argassign//\$\{value/\$\{__args_value}" - parser_result_var+="-${argname}) $argassign; shift 3 ;; + parser_result_var+="-${argname}) IFS='=' read -s __args_key __args_value <<<\"\$2\"; $argassign; shift 2 ;; " fi done + # ignore anything else! parser_result_var+="*) shift ;; esac done |