On 02/28/2012 06:05 PM, Steven W. Orr wrote:
> On 2/28/2012 11:54 AM, John Kearney wrote:
>> On 02/28/2012 05:22 PM, Roman Rakus wrote:
>>> On 02/28/2012 05:10 PM, John Kearney wrote:
>>>> wrap it with single quotes and globally replace all single
>>>> quotes in the string with '\''
>>> single quote and slash have special meaning so they have to be
>>> escaped, that's it. \'${var//\'/\\\'}\' it is not quoted, so
>>> it undergoes word splitting. To avoid it quote it in double
>>> quotes, however it changes how slash and single quote is
>>> treated. "'${var//\'/\'}'"
>>>
>>> Wasn't it already discussed on the list?
>>>
>>> RR
>>>
>> It was discussed but not answered in a way that helped.
>>
>>
>> Look consider this test=teststring
>>
>>
>> echo "${test//str/"dddd"}"
>
> This makes no sense.
>
> "${test//str/" is a string. dddd is anudder string "}" is a 3rd
> string
>
> echo "${test//str/\"dddd\"}"
>
> is perfectly legal.
>
>
But that isn't how it behaves.
"${test//str/"dddd"}"
because str is replaced with '"dddd"' as such it is treating the double
quotes as string literals.
however at the same time these literal double quotes escape/quote a
single quote between them.
As such they are treated both as literals and as quotes as such
inconsistently.