I want to print in the Конечный something like this:
lollipop
lollipo
lollip
lolli
loll
lol
lo
l
However if i do-n twice i get в newline and then it just prints "-n" if i использовал я начинаю. How хан i avoid this from happening and make this mess not print when i run 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, "позволяют интерпретации опции" Escape обратной косой черты с \n вызвать новые строки
echo -e "lollipop\nlollipo\nlollip\nlolli\nloll\nlol\nlo\nl"
Используйте printf вместо этого:
printf "lollipop\nlollipo\nlollip\nlolli\nloll\nlol\nlo\nl"
Предпочтите и портативные инструменты высокого уровня для специального форматирования вместо таких инструментов как эхо. Здесь я использую AWK для печати когда-либо уменьшающейся подстроки, которой предоставили here-string
. Обратите внимание, что я, возможно, использовал printf "%s" lollipop | awk . . .
также для лучшей мобильности
$ awk '{for(i=length($1);i>=1;i--) print substr($1,1,i)}' <<< "lollipop"
lollipop
lollipo
lollip
lolli
loll
lol
lo
l
, функция печати AWK всегда печатает одну строку, подобную Java System.out.println
. Это могло быть заменено print "%s\n",substr($1,1,i)