bash, problema amb les cometes
Hola,
Tinc un problema amb BASH. El que intento fer és substituir
les cometes ` (accent obert) per cometes ' (cometa simple) en
una variable.
ernest@doriath:~$ foo="foo\`bar"
ernest@doriath:~$ echo $foo
foo`bar
ernest@doriath:~$ echo ${foo/\`/\'}
foo'bar
Fins aquí tot bé. El problema és quan poso l'expressió entre
cometes dobles (""), cosa que és necessari per preservar els
espais, per exemple:
ernest@doriath:~$ foo="foo\`bar bla bla"
ernest@doriath:~$ echo "$foo"
foo`bar bla bla
ernest@doriath:~$ echo ${foo/\`/\'}
foo'bar bla bla
Com es pot veure, sense cometes dobles es menja els espais.
El problema és que quan ho poso entre cometes passa això:
ernest@doriath:~$ echo "${foo/\`/\'}"
foo\'bar
Em surt la maleïda barra i no hi ha manera de fer-la
desaparèixer. He provat:
1) Sense barra. No funciona.
ernest@doriath:~$ echo "${foo/\`/'}"
>
2) Amb doble barra. No funciona.
ernest@doriath:~$ echo "${foo/\`/\\'}"
>
3) Amb triple barra. Tampoc funciona.
ernest@doriath:~$ echo "${foo/\`/\\\'}"
foo\\'bar
Ja se m'han acabat les idees. Alguna idea de com fer-ho??
Ernest
Reply to: