From 0ad8daa6ae85cf716d35833856af1630f7107efc Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sun, 21 Jul 2019 18:35:19 +0200 Subject: [PATCH] Remove escape character in getopts --- data/helpers.d/getopts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/helpers.d/getopts b/data/helpers.d/getopts index 3794503ee..c8045fa25 100644 --- a/data/helpers.d/getopts +++ b/data/helpers.d/getopts @@ -77,7 +77,7 @@ ynh_handle_getopts_args () { for arg in `seq 0 $(( ${#arguments[@]} - 1 ))` do # Escape options' values starting with -. Otherwise the - will be considered as another option. - arguments[arg]="${arguments[arg]//--${args_array[$option_flag]}-/--${args_array[$option_flag]}\\-}" + arguments[arg]="${arguments[arg]//--${args_array[$option_flag]}-/--${args_array[$option_flag]}\\TOBEREMOVED\\-}" # And replace long option (value of the option_flag) by the short option, the option_flag itself # (e.g. for [u]=user, --user will be -u) # Replace long option with = @@ -155,6 +155,9 @@ ynh_handle_getopts_args () { eval ${option_var}+="\;" fi + # Remove the \ that escape - at beginning of values. + all_args[i]="${all_args[i]//\\TOBEREMOVED\\/}" + # For the record. # We're using eval here to get the content of the variable stored itself as simple text in $option_var... # Other ways to get that content would be to use either ${!option_var} or declare -g ${option_var}