Alex fxmbsw7 Ratchev <fxmb...@gmail.com> wrote: > and renoving the beginning and ending ' s
even if you remove the first and last ': 1) that is 3 PEs as the solution i described (${a//\\/\\\\} ${a//\`/\\\`} ${a//$/\\$} vs ${a@Q} ${a#\'} ${a%\'} ) 2) it doesn't actually accomplish anything: ~ --${@Q}-> '~' --${#\'}-> ~' --${%\'}-> ~ On Sun, 22 Aug 2021 at 23:14, Alex fxmbsw7 Ratchev <fxmb...@gmail.com> wrote: > > what about @Q > and renoving the beginning and ending ' s > > > On Sun, Aug 22, 2021, 23:13 Emanuele Torre <torreemanue...@gmail.com> wrote: >> >> It would be nice to have a parameter transformation (e.g. "${par@p}") >> that expands $par to a string that will not be expanded by PS1, PS2, &c. >> >> example: >> >> tmp_var=$(blabla) # this variable will not exist when PS1 is expanded >> PS1="blabla ${tmp_var@p} blabla" >> >> I think a valid way to achieve the same behaviour in the currenct >> version of bash: >> >> tmp_var=$(blabla) >> tmp_var=${tmp_var//\\/\\\\} >> tmp_var=${tmp_var//\`/\\\`} >> tmp_var=${tmp_var//$/\\$} >> PS1="blabla $tmp_var blabla" >> >> But a parameter transformation would be nicer. >> >> This parameter transformation should also make sure to not cause an >> expansion when concatenated. >> >> var='$' >> printf '%s\n' "${var@p}" # should not expand to `$'. >> PS1="${var@P}(date)" # because this should expand to `$(date)' >> # and not to the output of `date'. >> >> Cheers, >> emanuele6 >>