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

 ~

当您开始编写shell脚本时,请始终使用#!/usr/bin/env bash作为第一行。

该shell不会省略或操作转义序列。

例子:

echo "This is first \\n line"

打印

This is first \n line.

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

print -n "Some string ...."

print -从shell返回参数

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

注意,AIX上的/usr/bin/echo和/bin/echo不支持任何参数,因此如果使用sh或KornShell (ksh) shell, -n和-e都不起作用。

C shell和Bash有自己的内置echo,支持-n。 这是相关的,因为许多shell脚本显式地使用sh或KornShell。

AIX确实有/usr/bin/printf,因此正如前面的一些回答中所建议的,

$ printf "whatever"

相当于echo -n "whatever",其中支持-n。