echo -n 不输入任何内容,即使 echo 没有参数

echo -n 不输入任何内容,即使 echo 没有参数

在终端上,输入根本echo -n 不会输出任何内容,如果 echo 没有参数,那么为什么使用参数 -n 在 echo 中根本不执行任何操作?注意:执行类似的操作echo nil -n nil将起作用并输出nil -n nil,因此如果 echo 输出所有内容,那么为什么它不输出-n,它应该输出-n不执行任何操作。

答案1

默认情况下,echo在其输出中附加一个换行符,因此如果您发出不带任何参数的 echo,则输出为零,后跟一个换行符。

-n选项的意思是“不输出末尾的换行符”。因此,当您发出它时,echo -n它会使用-n作为选项,并且不输出任何没有换行符的内容。这将不会在显示屏上留下任何输出痕迹。

如果您使用的字母不是有效选项,echo例如“-x”,它将被打印到屏幕上,并像往常一样显示换行符。如果您在其他输入中使用 -n,它不会被读取为选项,因此将正常打印。

答案2

添加到阿罗尼卡尔回答echo不支持--,这是声明“这是选项/标志的结束,将后面的所有内容视为参数”的标准约定。

GNU可以使用以下方式echo输出-n

echo -e "\e--n"

在 中zshecho有一个内置的 shell,echo - -n可以完成这项工作。

相关内容