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

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
no avatar

Автор темы
GGW1996
Сообщения: 4
Зарегистрирован: 22 янв 2018, 20:30
Благодарил (а): 1 раз
Контактная информация:

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

#1

22 янв 2018, 20:35

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

Решение Chocobo » 22 янв 2018, 21:29
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 перестанет выполняться.

Перейти к ответу ➙

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#2

22 янв 2018, 20:37

Простейший цикл for
Читаем и просвещаемся
ИзображениеИзображение

no avatar

Автор темы
GGW1996
Сообщения: 4
Зарегистрирован: 22 янв 2018, 20:30
Благодарил (а): 1 раз
Контактная информация:

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

#3

22 янв 2018, 20:46

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

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#4

22 янв 2018, 20:49

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

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#5

22 янв 2018, 21:00

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


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

no avatar

Автор темы
GGW1996
Сообщения: 4
Зарегистрирован: 22 янв 2018, 20:30
Благодарил (а): 1 раз
Контактная информация:

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

#6

22 янв 2018, 21:11

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

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#7

22 янв 2018, 21:23

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

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

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

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#8

22 янв 2018, 21:29

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 перестанет выполняться.
Изображение
   
Изображение

no avatar

Автор темы
GGW1996
Сообщения: 4
Зарегистрирован: 22 янв 2018, 20:30
Благодарил (а): 1 раз
Контактная информация:

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

#9

22 янв 2018, 21:35

всем большое спасибо :thumbs: :thumbs: :thumbs:

Аватара пользователя

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

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

#10

22 янв 2018, 21:36

Халявщик! :evil:
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#11

22 янв 2018, 21:38

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

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#12

22 янв 2018, 21:39

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

Аватара пользователя

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

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

#13

22 янв 2018, 21:41

Повезло :-D
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#14

22 янв 2018, 21:42

Chocobo писал(а):
22 янв 2018, 21:39
по символьному массиву
:-D :acute:
ИзображениеИзображение

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#15

22 янв 2018, 21:49

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

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#16

22 янв 2018, 21:54

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

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#17

22 янв 2018, 22:00

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

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#18

23 янв 2018, 06:23

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

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;
ИзображениеИзображение

Аватара пользователя

rogoznik
Сообщения: 10044
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1958 раз
Контактная информация:

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

#19

24 янв 2018, 07:26

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

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

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

#20

24 янв 2018, 07:36

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

Закрыто

Вернуться в «Вопрос новичка и FaQ»

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 3 гостя