Possible /bin/sh Bug?
Tim Daneliuk
tundra at tundraware.com
Tue Jun 5 17:06:58 UTC 2012
On 06/05/2012 11:35 AM, Dan Nelson wrote:
> In the last episode (Jun 05), Tim Daneliuk said:
>> Given this script:
>> #!/bin/sh
>>
>> foo=""
>> while read line
>> do
>> foo="$foo -e"
>> done
>> echo $foo
>>
>> Say I respond 3 times, I'd expect to see:
>>
>> -e -e -e
>>
>> Instead, I get:
>>
>> -e -e
>>
>> Linux appears to do the right thing here, so this seems like it
>> is a bug ... or am I missing something?
>
> echo takes a -e flag, so it eats the first one. Bash does the same thing,
> so any Linux that uses bash as /bin/sh will also. You must be testing on a
> Linux that uses something else as /bin/sh. Better to use the printf command
> if you are worried about compatibility.
>
> echo [-e | -n] [string ...]
> Print a space-separated list of the arguments to the standard
> output and append a newline character.
>
> -n Suppress the output of the trailing newline.
>
> -e Process C-style backslash escape sequences. The echo
> command understands the following character escapes:
>
>
Ah, OK, that makes sense, thanks...
--
-----------------------------------------------------------------------
Tim Daneliuk
More information about the freebsd-questions
mailing list