我想在终端中打印这样的东西:
lollipop
lollipo
lollip
lolli
loll
lol
lo
l
但是,如果我执行 -n 两次,我会得到一个换行符,然后如果我使用 echo,它只会打印“-n”。我怎样才能避免这种情况发生并在我运行 X 时不打印这个混乱:
lollipop
lollipo-nlollip-nlolli-nloll-nlol-nlo-nl
X:
echo lollipop -n lollipo -n lollip -n lolli -n loll -n lol -n lo -n l
您需要将 -e "enable interpretation of backslash escapes" 选项与 \n 一起使用以强制换行
使用 printf 代替:
printf "lollipop\nlollipo\nlollip\nlolli\nloll\nlol\nlo\nl"
优先使用用于特殊格式化的高级便携式工具,而不是 echo 等工具。在这里,我使用 AWK 打印
here-string
. 请注意,我也可以使用printf "%s" lollipop | awk . . .
它以获得更好的便携性AWK 的 print 函数总是打印一行,类似于 java 的
System.out.println
. 这可以替换为print "%s\n",substr($1,1,i)