2016-05-16 1 views
1

Я изучаю bash, и я хочу напечатать букву A в цикле for, каждый раз больше, чем предыдущий. Так, например, если я итерации петли 5 раз, я хочу иметь следующий вывод:Как печатать букву А поэтапно в цикле в bash?

A 
AA 
AAA 
AAAA 
AAAAA 

я начал что-то вроде этого, но я не знаю, как добиться того, чего я хочу:

#!/bin/bash 

INDEX=1 

while [ $INDEX -lt 5 ]; do 
    echo "??" 
done 

Любые идеи для достижения того, что я хочу?

+1

Все колпачки имена зарезервированы для имен с значением для оболочки или операционной системы, поэтому рекомендуются использовать имена нижнего регистра для собственных переменных; см. четвертый абзац http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html, имея в виду, что переменные оболочки и переменные среды совместно используют пространство имен (то есть переменную оболочки с именем, которое перекрывается с существующей переменной среды будет перезаписывать последнюю). –

ответ

5

Добавить в строку. Для того, чтобы воспользоваться Башем объектов в этом:

for ((index=0; index<5; index++)); do 
    s+=A 
    echo "$s" 
done 
3
#!/bin/bash 

INDEX=1 

while [ $INDEX -lt 6 ]; do 
    for ((i=1;i<=$INDEX;i++)); do 
     printf A 
    done 
    printf "\n" 
    INDEX=$(($INDEX+1)) 
done 
+1

Лучше использовать 'printf A' или' printf '% s' A', если вы собираетесь использовать POSIX sh, btw - 'echo -n' не определено. См. Http://pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html; цитируя из первой строки раздела ИСПОЛЬЗОВАНИЕ ПРИМЕНЕНИЯ: «« Невозможно использовать эхо-переносимость во всех системах POSIX, если оба -n (как первый аргумент) и escape-последовательности не указаны ».« –

+1

Также «$ [. ..] 'на самом деле пред-POSIX математический синтаксис - POSIX sh spec удаляет его в пользу' $ ((...)) ', что делает его чистой обратной совместимостью Bourne. –

+0

@CharlesDuffy благодарю вас за конструктивные комментарии :) .. Я изменю его соответственно – solti

Смежные вопросы