我在我的脚本中有一个echo的问题:
echo -n "Some string..."
打印
-n Some string...
然后转到下一行。在控制台中,没有换行符,它可以正常工作:
Some string...
我在我的脚本中有一个echo的问题:
echo -n "Some string..."
打印
-n Some string...
然后转到下一行。在控制台中,没有换行符,它可以正常工作:
Some string...
当前回答
仅就最流行的Linux发行版Ubuntu及其Bash而言:
检查您正在使用哪个shell。主要是以下作品,其他看这个: echo $ 0 如果上面打印bash,那么下面将工作: Printf "hello with no new line print in end" 或 Echo -n "hello with no new line in end"
其他回答
仅就最流行的Linux发行版Ubuntu及其Bash而言:
检查您正在使用哪个shell。主要是以下作品,其他看这个: echo $ 0 如果上面打印bash,那么下面将工作: Printf "hello with no new line print in end" 或 Echo -n "hello with no new line in end"
如果你在If中使用echo和其他命令一起使用,比如"read",它可能会忽略设置,并跳转到新的行。
我在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
~
为了达到这个目的,我经常使用两种方法:
1. 使用光标转义字符(\c)和echo -e
例子:
for i in {0..10..2}; do
echo -e "$i \c"
done
# 0 2 4 6 8 10
-e flag启用字符串中的转义字符。 \c将光标返回到当前行。
OR
2. 使用printf命令
例子:
for ((i = 0; i < 5; ++i)); do
printf "$i "
done
# 0 1 2 3 4