On 2/28/12 5:30 PM, Maarten Billemont wrote:
>>> 1${A:-B}2
>>>
>>> Logically for consistancy having double quotes at position 1 and 2
>>> should have no effect on how you treat string B.
>>
>> Maybe, but that's not how things work in practice. Should the following
>> expansions output the same thing? What should they output?
>>
>> bar=abc
>> echo ${foo:-'$bar'}
>> echo "${foo:-'$bar'}"
>>
>> Chet
>
>
> Personally, I'd prefer it to behave in the same way bash deals with this sort
> of thing in other contexts.
You'd be surprised.
> Eg.
>
> echo $(echo '$bar')
> echo "$(echo '$bar')"
>
> Both obviously result in <$bar> getting output.
New-style command substitutions are treated differently.
> For the sake of consistency with the rest of bash, I would expect the same
> from your example.=
No shell behaves like that. Everyone outputs
$bar
'abc'
and Posix requires it.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/