涉及尾行字符的 shell 行为不一致

涉及尾行字符的 shell 行为不一致

为什么:

[ "a" != "$(printf "\na")" ] && echo true || echo false

打印true同时:

[ "a" != "$(printf "\n")a" ] && echo true || echo false

打印false

答案1

我想是因为$(...)。该替换会自动删除结束换行符。这是一个很好的默认行为。

相关内容