查看下面的命令输出,里面附加了%
我真正想要的内容:
➜ ls *.md | tr '\n' ':'
README.md:%
其原因何在?如何消除?
提前致谢!
答案1
我猜你正在使用zsh
作为 shell?它表示程序的输出未以换行符结尾。它由zsh
而不是程序打印。程序运行正常。
假设每个程序在其输出末尾打印一个换行符。这允许下一个程序安全地开始打印下一行 - 例如在 shell 的情况下的提示符。以下是一个例子bash
:
gronostaj:~# echo test
test
gronostaj:~#
echo
默认情况下,将在末尾添加换行符。您可以使用 来隐藏此操作,-n
结果如下,同样在 中bash
:
gronostaj:~# echo -n test
testgronostaj:~#
这可不太酷。关于输出以换行符结尾的假设是不正确的,提示符被连接到了上一个输出的末尾。
在中zsh
,第二个示例如下所示:
➜ echo -n test
test%
➜
zsh
打印%
字符以表明检测到缺少换行符,并且它已将其附加到您以避免破坏提示。不是 echo 打印它,而是 shell。