From: Junio C Hamano Date: Mon, 17 Mar 2014 19:26:42 GMT Subject: Re: [PATCH] test-lib.sh: use printf instead of echo Message-ID: In-Reply-To: <20140315001855.GK15625@google.com> Jonathan Nieder writes: > Uwe Storbeck wrote: > >> Backslash sequences are interpreted as control characters >> by the echo command of some shells (e.g. dash). > > This has bothered me for a while but never enough to do anything about > it. Thanks for fixing it. > >> Signed-off-by: Uwe Storbeck > > Reviewed-by: Jonathan Nieder > > (patch left unsnipped for reference) >> --- >> t/test-lib.sh | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/t/test-lib.sh b/t/test-lib.sh >> index 1531c24..8209204 100644 >> --- a/t/test-lib.sh >> +++ b/t/test-lib.sh >> @@ -277,7 +277,7 @@ error "Test script did not set test_description." >> >> if test "$help" = "t" >> then >> - echo "$test_description" >> + printf '%s\n' "$test_description" >> exit 0 >> fi >> >> @@ -328,7 +328,7 @@ test_failure_ () { >> test_failure=$(($test_failure + 1)) >> say_color error "not ok $test_count - $1" >> shift >> - echo "$@" | sed -e 's/^/# /' >> + printf '%s\n' "$@" | sed -e 's/^/# /' This is wrong, isn't it? Why do we want one line per item here? >> test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; } >> } >>