为什么“ echo -n”命令在.sh脚本中不起作用?

时间:2020-11-10 14:39:51

标签: bash shell sh zsh

例如,我正在一个.sh文件中编写一个脚本,并且我想在没有尾随空格/换行符的情况下回显短语“ string”,因此我应该像我一样使用const updateSorting = (sortedBy, direction) => { setSortBy(sortBy => { return { ...sortBy, [sortedBy]: direction }; }); }; updateSorting('posts', 'desc'); 在bash或zsh中实现此功能。但是,当我使用echo -n "string"命令在bash / zsh中运行.sh时,.sh文件将仅打印sh,其中包括新行。在使用-n string命令的情况下如何打印内容而不用换行?

1 个答案:

答案 0 :(得分:0)

bash的{​​{1}}命令实现与POSIX规范完全不同。当echobash的身份运行时,sh表现得比POSIX预期的更多,但是您的echo也可能sh,但是像bash这样的shell更严格地遵循POSIX规范,不允许任何扩展。 POSIX要求将dash像其他任何参数一样对待,输出某些内容而不是修改-n的行为。

请改用echo,它具有更严格的POSIX规范并且更易于移植。

printf