LINUX.ORG.RU

$ echo -n "a = "; read a; for i in $( seq $a 10 ); do echo $i; done
a = 7
7
8
9
10

А вообще можно наверно и как у тебя сделать, но через какие-нибудь eval'ы.

alozovskoy ★★★★★
()
Ответ на: комментарий от exepush

Оба предложенных решения работают, спасибо.

На самом деле задача немного другая - обратный отсчет времени с интервалом 1 сек., количество секунд задается через команду read. Если что, прошу извинения )

Первоначально инструкция для 10 секунд выглядит так:

for i in {10..1}; do echo -ne " Осталось секунд: \e[0K$i\r"; sleep 1s; done
Нужно было заменить 10 секунд на введенное пользователем значение.

Работает такой вариант:

echo -n "a = "; read a; for ((i = $a; i >= 1; i--)); do echo -ne " Осталось секунд: \e[0K$i\r"; sleep 1s; done
Любопытно было бы увидеть вариант с использованием seq, если возможно.

carabo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.