我写了一个bash脚本,我想回显一个string,但没有自动添加到最后的换行符。 阅读手册页上的标志是-n 。
问题是,当我这样做时:
echo -n "My string is here"
bash脚本中的输出是:
-n My string is here
任何想法为什么-n标志被输出,而不是处理。
检查你正在使用的shell:
echo $0
如果是/bin/sh ,请使用chsh切换到/bin/bash ,然后重试。
http://hints.macworld.com/article.php?story=20071106192548833
适用于CentOS,但似乎OSX不喜欢-n标志。
echo在版本之间奇怪地不一致 – 不同版本的/ bin / echo,以及各种shell(甚至是同一个shell的不同版本)的内置版本。 有些版本理解选项(如-n ),有些版本可以理解string中的转义序列(以"\c"结尾以跳过换行符)。 有些版本使用这两个奇怪的组合。
如果您想要一致的行为,请避免使用echo而使用printf 。 这有点复杂,但更可预测:
printf "%s" "My string is here"