Depending on the implementation, the echo command may
support options like -n -e -E or no options at all.

The only portable usage of echo is without any options,
which means that no parameter may start with a hyphen. checks if echo -n is used.
Improve it to reject any parameter starting with a hyphen
and recommend the usage of printf instead

Signed-off-by: Torsten Bögershausen <>
 t/ | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/ b/t/
index 8b5a71d..ff87611 100755
--- a/t/
+++ b/t/
@@ -17,7 +17,7 @@ sub err {
 while (<>) {
        /^\s*sed\s+-i/ and err 'sed -i is not portable';
-       /^\s*echo\s+-n/ and err 'echo -n is not portable (please use printf)';
+       /^\s*echo\s+-(\S)\s+/ and err "echo -$1 is not portable (please use 
        /^\s*declare\s+/ and err 'arrays/declare not portable';
        /^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)';
        /test\s+[^=]*==/ and err '"test a == b" is not portable (please use =)';

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to