`echo -n`什么都没打印

时间:2014-03-18 19:16:48

标签: bash echo newline

我使用this question从字符串中删除换行符,但我在一台主机上遇到了问题。

由于某种原因,/bin/echo -n foo在该主机上没有打印任何内容。我不知道为什么那个主机表现得很奇怪。 /bin/echo foo工作正常。它不是终端,因为echo -n foo > /tmp/bar也没有显示任何内容。

/bin/echo --help应该工作:

Usage: /bin/echo [OPTION]... [STRING]...
Echo the STRING(s) to standard output.

  -n             do not output the trailing newline
  -e             enable interpretation of backslash escapes
  -E             disable interpretation of backslash escapes (default)
      --help     display this help and exit
      --version  output version information and exit

% /bin/echo --version
echo (GNU coreutils) 5.97

什么可能导致这不起作用?在这个bash-shell中会有一些奇怪的缓冲吗?

1 个答案:

答案 0 :(得分:1)

根据评论中的信息,似乎/bin/echo -n foo正在产生预期的输出,但它会被您的下一个shell提示覆盖。 (很可能是你的shell,而不是你的终端设置。)

您可以通过运行

来证明这一点
/bin/echo -n foo | wc

应产生此输出:

  0       1       3

你也可以试试这个:

/bin/echo -n foo ; sleep 5

这会将你的下一个shell提示延迟5秒,这样你就可以在覆盖之前看到输出。

(你使用的是什么外壳?$PS1的价值是多少?)