From: Duy Nguyen Date: Wed, 22 Jun 2016 18:41:10 GMT Subject: Re: [PATCH v6 00/11] Fix icase grep on non-ascii Message-ID: In-Reply-To: On Wed, Jun 22, 2016 at 8:36 PM, Junio C Hamano wrote: > On Wed, Jun 22, 2016 at 11:29 AM, Duy Nguyen wrote: >> >> Can any shell wizards explain this to me? With this code >> >> BS=\\ >> echo ${BS}${BS} >> >> Debian's dash returns a single backslash while bash returns two >> backslashes. Section 2.2.1 [1] does not say anything about one >> backslash (hidden behind a variable!) after escaping the following one >> and still eats the one after that.. >> >> [1] http://pubs.opengroup.org/onlinepubs/009604499/utilities/xcu_chap02.html > > I am not a wizard, but is the difference between the shell syntax, or just their > implementation of builtin-echo? IOW, how do these three compare? > > printf "%s\n" "${BS}${BS}" > echo "${BS}${BS}" > echo ${BS}$BS} Great! printf shows two backslashes while both echo'es show one. printf "\\\\" behaves like echo though. Doesn't matter, at least I should be able to make the tests work on Debian dash. -- Duy