Страница 1 из 2

Счетчик иттераций

Добавлено: 22 янв 2018, 20:35
GGW1996
Всем добрый вечер! У меня вопрос следующего характера: необходимо написать цикл со счетчиком итераций в shell, значение счетчика необходимо выводить на экран каждую итерацию.
Если есть какие-либо мысли, то буду рад их прочитать! Непонятна даже суть задания :-D :-D :-D :dash: :dash: :dash:

Счетчик иттераций

Добавлено: 22 янв 2018, 20:37
rogoznik
Простейший цикл for
Читаем и просвещаемся

Счетчик иттераций

Добавлено: 22 янв 2018, 20:46
GGW1996
А можно поподробнее? я обратился за помощью в связи со своей некомпетентностью, поэтому ожидаю более готовое решение :tux: :tux: :tux:

Счетчик иттераций

Добавлено: 22 янв 2018, 20:49
rogoznik
GGW1996 писал(а):
22 янв 2018, 20:46
ожидаю более готовое решение
Лучше почитай по ссылке. Там все подробно расписано. Плюс придет понимание что там происходит

Счетчик иттераций

Добавлено: 22 янв 2018, 21:00
Chocobo
GGW1996, написать готовый цикл сделав за тебя домашку было бы слишком скучно :hoho:
Пусть там и однострочник на два десятка симоволов независимо от for или while
Предложи хоть что нибудь, а там уже наведем на решение


darkfenix, само определение
GGW1996 писал(а):
22 янв 2018, 20:35
написать цикл со счетчиком итераций в shell
В принципе не мешает дернуть из шелла любой брейнфак, так что простор для творчества есть, очень даже :hoho:

Счетчик иттераций

Добавлено: 22 янв 2018, 21:11
GGW1996
На самом деле я посетил много интернет-ресурсов и знаю, как описываются for и while, я не понимаю суть задания. Если не трудно, объясните, мне нужно выводить в терминал при выполнении команды номер этой команды или что мне необходимо сделать?

Счетчик иттераций

Добавлено: 22 янв 2018, 21:23
rogoznik
Необходимо выводить номер итерации, что тут не понятного. К примеру есть такой цикл

Код: Выделить всё

for ($i = 1; $i <= 10; $i++) {
	echo $i;
}
$i - это счетчик итераций.

Счетчик иттераций

Добавлено: 22 янв 2018, 21:29
Chocobo
GGW1996, ну в целом итерация - это просто очередной проход цикла, нумеровать которые для данного случая можно с единицы до нужного количества
фиг с ним, не буду больше вредничать :smile: вот for :

Код: Выделить всё

chocobo@desktop ~ $ for i in {1..5}; do echo "Iteration № $i"; done
Iteration № 1
Iteration № 2
Iteration № 3
Iteration № 4
Iteration № 5
где мы говорим интерпретатору - для значения переменной i от единицы до пятерки - покажи нам текст с текущим номером итерации (значением самой i в данном случае)

или с while:

Код: Выделить всё

chocobo@desktop ~ $ x=1; while [ $x -le 5 ]; do echo "iteration № $x";x=$(( $x + 1 )); done
iteration № 1
iteration № 2
iteration № 3
iteration № 4
iteration № 5
тут явно задается значение переменной X и даем директиву: пока значение x меньше или равно пяти - выводим значение и прибавляем к x единичку. После пятого прохода x станет уже 6, и условие while перестанет выполняться.

Счетчик иттераций

Добавлено: 22 янв 2018, 21:35
GGW1996
всем большое спасибо :thumbs: :thumbs: :thumbs:

Счетчик иттераций

Добавлено: 22 янв 2018, 21:36
di_mok
Халявщик! :evil:

Счетчик иттераций

Добавлено: 22 янв 2018, 21:38
rogoznik
Chocobo писал(а):
22 янв 2018, 21:29
не буду больше вредничать
Вот это все было написано в ссылке, которую я дал

Счетчик иттераций

Добавлено: 22 янв 2018, 21:39
Chocobo
di_mok, ну будь я преподом - предложил бы следом вывести номер итерации для цикла по символьному массиву a b c d e f :hoho:

Счетчик иттераций

Добавлено: 22 янв 2018, 21:41
di_mok
Повезло :-D

Счетчик иттераций

Добавлено: 22 янв 2018, 21:42
rogoznik
Chocobo писал(а):
22 янв 2018, 21:39
по символьному массиву
:-D :acute:

Счетчик иттераций

Добавлено: 22 янв 2018, 21:49
Chocobo
ну, если знать логику баша немножко, то понятно, что счетчик итераций можно держать внутри цикла, а в зависимости от состояния переменной сразу явно понять какой именно проход мы имеем в данный момент и что делать с итератором дальше :smile:
Ваши варианты реализации, раз уж играемся?

Счетчик иттераций

Добавлено: 22 янв 2018, 21:54
rogoznik
Chocobo писал(а):
22 янв 2018, 21:49
Ваши варианты реализации
Что реализуем? Это Счетчик иттераций (Пост Chocobo #38718) ?

Счетчик иттераций

Добавлено: 22 янв 2018, 22:00
Chocobo
darkfenix, Угу, типа такого (код спецом пока от всех спрячу, раз уж я в роли вредного педагога :hoho: )
Снимок экрана от 2018-01-22 21-45-43.png
Хотя ответ хотелось бы конечн увидеть и от топикстартера :)

Счетчик иттераций

Добавлено: 23 янв 2018, 06:23
rogoznik

Код: Выделить всё

for (( i=1; i <= 6; i++ )) 
do 
	k="abcdef"; 
	echo "Value is $k[i] , Iteration № $i"; 
done;

Код: Выделить всё

k=1; 
for i in a b c d e f; 
do  
    echo "Value is $i , Iteration № $k"; 
     (( k++ ));
done;

Счетчик иттераций

Добавлено: 24 янв 2018, 07:26
rogoznik
Chocobo писал(а):
22 янв 2018, 22:00
я в роли вредного педагога
Хоть бы мои извращения прокомментировал как-то :-D

Счетчик иттераций

Добавлено: 24 янв 2018, 07:36
Chocobo
darkfenix, Слишком вредный видимо :-D
А так - все ок конечн,
Плюс я никогда глубоко не тыкавшись в возможности zsh - очень приятно удивлен обращением к элементу $k[$i], меганужная штука бы в баше. Надо еще поковырять подобных фишек