**已关闭。**此问题为not about programming or software development。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
12天前关门了。
Improve this question的
当我打开终端并输入命令echo 987654321 | tail -c3
时,输出为21
。
但是,当我创建一个名为test_tail.sh
的文件时,将987654321
写入该文件,命令tail -c3 test_tail.sh
将打印321
。
为什么会有这些不同的结果呢?根据手册,tail -cNUM shows the last NUM bytes of a file
。所以,我很好奇为什么终端中的echo 987654321 | tail -c3
会打印21
。
1条答案
按热度按时间uinbv5nw1#
默认情况下,
echo
会在输出后追加一个换行符(\n)。当您将echo 987654321
的输出通过管道传输到tail -c3
时,它会处理字符串987654321\n
。如果你不想让
echo
命令附加一个换行符,你可以使用-n
标志:字符串
**注意:**echo命令中的
-n
标志不是POSIX标准的一部分,即echo
的某些实现可能不支持-n
标志。因此,正如 @Biffen 所提到的,建议使用printf
命令,它更易于移植,并且符合POSIX标准。例如:型