Re: [PATCH] test-lib.sh: use printf instead of echo
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Mar 20, 2014, 00:17 UTC
- Message-ID
- <20140320001718.GM15625@google.com>
- In-Reply-To
- <xmqqfvme5cql.fsf@gitster.dls.corp.google.com>
Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
Show 15 quoted lines
>> We currently use "echo" all over the place (e.g., 'echo "$path"' in >> git-sh-setup), and every time we fix it there is a chance of making >> mistakes. I wonder if it would make sense to add a helper to make the >> echo calls easier to replace: > > I agree that we would benefit from having a helper to print a single > line, which we very often do, without having to worry about the > boilerplate '%s\n' of printf or the portability gotcha of echo. > > I am a bit reluctant to name the helper "sane_echo" to declare "echo > that interprets backslashes in the string is insane", though. For > these "print a single line" uses, we are only interested in using a > subset of the features offered by 'echo', but that does not mean the > other features we do not want to trigger in our use is of no use to > any sane person.
In a portable script, uncareful use of 'echo' is always insane.
In a script tailored to an environment where echo behaves consistently it is perfectly reasonable to use 'echo', but that's a different story. In the context of git, saying "Here is the thing you should always use instead of echo" is a good thing, in my opinion.
Hoping that clarifies, Jonathan