2023-06-23 10:00:00

"echo -n"打印"-n"

我在我的脚本中有一个echo的问题:

echo -n "Some string..."

打印

-n Some string...

然后转到下一行。在控制台中,没有换行符,它可以正常工作:

Some string...

当前回答

我在IBM z/OS中遇到了同样的问题,所以我使用了print而不是echo,而且它有效。

print -n "Some string ...."

print -从shell返回参数

其他回答

我相信现在你的输出如下

~ echo -e "String1\nString2"
String1
String2

可以使用xargs将多行标准输出输出到同一行。

 ~ echo -e "String1\nString2" | xargs
String1 String2

 ~
enable -n echo
echo -n "Some string..."

echo命令有多个版本,具有不同的行为。显然,用于脚本的shell使用了一个不识别-n的版本。

printf命令具有更一致的行为。echo适用于简单的echo hello,但我建议使用printf处理更复杂的事情。

您在什么系统上,您的脚本使用什么shell ?

我在IBM z/OS中遇到了同样的问题,所以我使用了print而不是echo,而且它有效。

print -n "Some string ...."

print -从shell返回参数

试着用

echo -e "Some string...\c"

正如我从你的问题中理解的那样,它对我来说是有效的。

请注意,我从手册页获得了这些信息。手册页还指出shell可能有自己的echo版本,我不确定bash是否有自己的版本。