diff --git a/nshlib/nsh_envcmds.c b/nshlib/nsh_envcmds.c index 442d6b2ba8c..52be0e96cd2 100644 --- a/nshlib/nsh_envcmds.c +++ b/nshlib/nsh_envcmds.c @@ -390,19 +390,18 @@ int cmd_echo(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv) str_escape(argv[0]); } - nsh_output(vtbl, "%s", argv[0]); - - --argc; - ++argv; - if (argc > 0) + if (argc > 1) { - nsh_output(vtbl, " "); + nsh_output(vtbl, "%s ", argv[0]); + } + else + { + nsh_output(vtbl, newline ? "%s\n" : "%s", argv[0]); + break; } - } - if (newline) - { - nsh_output(vtbl, "\n"); + --argc; + ++argv; } return OK;