Skip site navigation (1)Skip section navigation (2)
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>