Emanuele Torre <torreemanue...@gmail.com> wrote: > ~ --${@Q}-> '~' --${#\'}-> ~' --${%\'}-> ~
Sorry, that was a bad example. Still, it does not accomplish anything: \w --${@Q}-> '\w' --${#\'}-> \w' --${%\'}-> \w On Sun, 22 Aug 2021 at 23:56, Emanuele Torre <torreemanue...@gmail.com> wrote: > > 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 > >>