Date: Fri, 30 Dec 2011 23:56:38 -0600 From: Dan Nelson <dnelson@allantgroup.com> To: Erik Trulsson <ertr1013@student.uu.se> Cc: nm.knife@gmail.com, FreeBSD Questions <freebsd-questions@freebsd.org>, Edward Martinez <eam1edward@gmail.com> Subject: Re: why newline scape sequence does not work in Freebsd's bash Message-ID: <20111231055638.GB24192@dan.emsphone.com> In-Reply-To: <20111231015640.GA38111@owl.midgard.homeip.net> References: <4EFE645B.8010906@gmail.com> <CAHi1JsepvhJaHb%2B1zMssWiConxz9U75%2B8t8Pay2AH68mYrMjXg@mail.gmail.com> <CAHi1JsdOu9oMGqL4fiOM7P0ExCXHA2q=r%2BzGeEihXojAffj2pA@mail.gmail.com> <4EFE77D1.3090402@gmail.com> <20111231015640.GA38111@owl.midgard.homeip.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Dec 31), Erik Trulsson said: > On Fri, Dec 30, 2011 at 06:47:45PM -0800, Edward Martinez wrote: > > On 12/30/11 17:06, ??????? ???????? wrote: > > > I used ' singe quotes, so double quotes is: > > > > > > $ FRUIT_BASKET="apples oranges pears" > > > $ echo -e "My fruit basket contains: \n $FRUIT_BASKET" > > > My fruit basket contains: > > > apples oranges pears > > > > Thanks for the help, it worked. I find it interesting that FreeBSD's > > echo man page does not mention the -e option is needed to enable > > backslash escapes. I remembered why it worked on linux is because i > > created an echo alias with the -e option. So i will do the same for > > FreeBSD. > > The echo(1) manpage on FreeBSD doesn't say anything about '-e' because > that version of echo doesn't have such an option. The echo you were > actually using is the one builtin into bash and is described in the > bash(1) manpage (including mention of the -e option.) If you want a command guaranteed to process backslash-escape sequences, use the printf command, not echo. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html It is not possible to use echo portably across all POSIX systems unless both -n (as the first argument) and escape sequences are omitted. The printf utility can be used portably to emulate any of the traditional behaviors of the echo utility as follows (assuming that IFS has its standard value or is unset). New applications are encouraged to use printf instead of echo. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html The %b conversion specification is not part of the ISO C standard; it has been added here as a portable way to process <backslash>-escapes expanded in string operands as provided by the echo utility. See also the APPLICATION USAGE section of echo for ways to use printf as a replacement for all of the traditional versions of the echo utility. -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111231055638.GB24192>