Hola,
Tinc un problema amb BASH. El que intento fer és substituir
les cometes ` (accent obert) per cometes ' (cometa simple) en
una variable.
[EMAIL PROTECTED]:~$ foo=foo\`bar
[EMAIL PROTECTED]:~$ echo $foo
foo`bar
[EMAIL PROTECTED]:~$ 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:
[EMAIL PROTECTED]:~$ foo=foo\`bar blabla
[EMAIL PROTECTED]:~$ echo $foo
foo`bar blabla
[EMAIL PROTECTED]:~$ 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ò:
[EMAIL PROTECTED]:~$ 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.
[EMAIL PROTECTED]:~$ echo ${foo/\`/'}
2) Amb doble barra. No funciona.
[EMAIL PROTECTED]:~$ echo ${foo/\`/\\'}
3) Amb triple barra. Tampoc funciona.
[EMAIL PROTECTED]:~$ echo ${foo/\`/\\\'}
foo\\'bar
Ja se m'han acabat les idees. Alguna idea de com fer-ho??
Ernest