Главные темы ► linux ► shell ► cycles ► Циклы в языке shell
Теги: shell while for

Циклы в языке shell

Статья в доработке

    Простой цикл for
    for planet in "Меркурий 36" "Венера 67" "Земля 93" "Марс 142" "Юпитер 483" do #Разбиение переменной planet на множество аргументов set -- $planet echo "$1 в $2,000,000 миль от Солнца" done

    Конструкция set -- предохраняет от неожиданностей, на тот случай если planet будет пустой или будет начинаться с символа -
    Если [список] в цикле for не задан, то в качестве оного используется переменная $@ -- список аргументов командной строки
    Как это показано в следующем примере

    for a do echo -n "$a " done
    while

    Оператор while может иметь несколько условий. Но только последнее из них определяет возможность продолжения цикла

    var1=20; while [ "$var1" -gt 0 ] do echo "$var1" var1=`expr $var1 - 1` done #Несколько условий var1=20; while echo "Текущее значение переменной: "; var1=`expr $var1 - 1`; [ "$var1" -gt 0 ] do echo "$var1" done
    until

    Оператор цикла until проверяет условие в начале каждой итерации, но в отличие от while итерация возможна только в том случае, если условие ложно

    Вложенные циклы
    outer=1 for a in 1 2 3 4 5 do echo "Итерация #$outer внешнего цикла" echo "_______________________________" inner=1 for b in 1 2 3 4 5 do echo "Итерация #$inner вложенного цикла" let "inner+=1" done let "outer+=1" echo done
    continue и break

    Команде break может быть передан необязательный параметр, номер вложенного цикла

    LIMIT=10 a=0 while [ $a -le $LIMIT ] do a=$(($a+1)) if [ "$a" -eq 3 ] || [ "$a" -eq 10 ] then continue fi echo "$a" done
    Источники
    Последнее изменение: October 6, 2024 21:45


    Редактировать


    test

    2025-12-31 23:09:00 Редактировать

    test

    2025-12-31 23:10:00 Редактировать

    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ
    Loading…
    Loading the web debug toolbar…
    Attempt #