Операторы циклов с условием Синтаксис цикла с предусловием While

Самостоятельная
работа №4:

Управляющие
структуры. Программирование алгоритмов
циклической структуры

Циклические
структуры

Циклические
конструкции обеспечивают многократное
выполнение одной и той же последовательности
инструкций, которая называется телом
цикла
.
Существуют два вида элементарных
циклических структур:

        
циклы
с параметром;

        
итерационные
циклы или циклы с условием.

Циклы
с параметром используют тогда, когда
количество повторов тела цикла заранее
известно. В языке Pascal
циклы с параметром реализуются с помощью
оператора For.

Итерационные
циклы

используются тогда, когда число повторений
заранее неизвестно, но задано условие
окончания цикла. Причем, если условие
окончания цикла проверяется перед
выполнением тела цикла, то такие
циклические структуры называют
итерационными циклами с
предусловием

(“Выполнять пока”), а если проверка
условия происходит после выполнения
тела цикла – итерационными циклами с
постусловием

(“Выполнять до тех пор пока не”).

На
практике циклы с условием чаще всего
используют в двух случаях:

  • Число
    повторений заранее неизвестно (например,
    цикл до достижения требуемой точности
    результата).

  • Число
    повторений заранее известно, но шаг
    параметра цикла не равен 1 (или –1).

В
языке Pascal итерационные циклы с
предусловием

реализуются с помощью оператора While,
а итерационные циклы с
постусловием

— с помощью оператора Repeat
… Until.

Циклы с параметром

Оператор
FOR

Синтаксис
оператора For:

Последовательность
операторов, находящаяся между begin
и end,
будет выполнена (кон_зн_счетчика
— нач_зн_счетчика_цикла + 1) раз.
Если начальное значение счетчика
превышает конечное значение счетчика,
при шаге цикла равным 1, то последовательность
операторов, находящаяся между begin
и end
ни разу не будет выполнена.

Примеры:

  1. Протабулировать
    функцию (найти значения функции) y=sin
    x
    на отрезке [a,
    b]
    с шагом h.

Программа,
реализующая данный алгоритм имеет вид:

 

  1. Вычислить
    сумму конечного ряда
    ,
    т.е. сумму первых n
    членов последовательности
      (k=1,2,3..,n).

Программа,
реализующая данный алгоритм будет иметь
вид:

 Замечание.
В
том случае, если тело цикла состоит
только из одной инструкции, нет смысла
использовать составной оператор
(операторные скобки Begin…End)

Итерационные
циклы

    
Инструкции, находящиеся
между begin
и end
выполняются до тех пор, пока условие
истинно. Если условие неверно при входе
в цикл, инструкции ни разу не исполняются.

    
Чтобы цикл завершился,
необходимо, чтобы последовательность
инструкций между begin
и end
изменяла значения переменных, входящих
в выражение условие.

Пример. Подсчитать количество цифр
в заданном целом числе.

Программа, реализующая данный алгоритм
будет иметь вид:

Замечание.
В том случае, если
тело цикла состоит только из одной
инструкции, нет смысла использовать
составной оператор (операторные скобки
Begin…End)

Синтаксис цикла с постусловием Repeat … Until

Работа оператора:

    
выполняются инструкции,
следующие после ключевого слова Repeat;

    
вычисляется значение
условия. Если условие ложно, то повторно
выполняются инструкции цикла. Если
условие истинно, то выполнение цикла
прекращается.

Замечание.
При использовании
цикла с постусловием нет необходимости
использовать операторные скобки.

Пример.
Вычислить сумму бесконечного ряда
 с
заданной точностью Eps,
(т.е. вычислить сумму всех членов
последовательности
,
не меньших заданного числа Eps).

Программа, реализующая данный алгоритм
будет иметь вид:

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

Компонент Memo
(многострочное окно редактирования)
.
Используется для ввода, отображения и
редактирования многострочных текстов.
Относится к группе Standard.

Alignment

Задает
режим выравнивания текста внутри
Memo.

AutoSize

Задает необходимость
изменения размера компонента при
изменении размера шрифта.

BorderStyle

Задается
стиль обрамления Memo.

Color

Задает
цвет, которым изображается элемент
Memo
на экране.

Lines

Определяет
текст, который будет выведен построчно
в окне Memo
при запуске программы. Текст задается
в окне String
List Editor

MaxLength

Позволяет ограничивать
число вводимых пользователем символов.

ScrollBars

Задает наличие полос
прокрутки.

Text

Используется,
чтобы получить текст компонента Memo
как одну строку. Значение этого
свойства не отображается в окне Object
Inspector,
к нему можно обратиться только во
время выполнения программы.

Пример использования в программе

1.  
Заполнение Memo
с использованием свойства Text
на примере табулирования
функции.

 

2.     
Тот же пример, но
Memo
заполняется с использованием свойства
Lines.
Метод Add,
примененный к Lines
позволяет добавить строку в Memo.
Оператор memo1.Lienes[0]:=’ 

|  y 
’; задает первую
строку в Memo
.

Компонент BitBtn
(кнопка с изображением)
.
Используется как обычная кнопка для
инициирования некоторого события, но
может содержать графическое изображение.
Относится к группе Additional.

Caption

Задает текст надписи
на кнопке.

Kind

Предлагает на выбор
десять предопределенных типов кнопок

Glith

Предлагает
создание собственного типа кнопки с
помощью окна Picture
Editor.

studfiles.net

PHP: Цикл for. Вложенные циклы

Цикл for

Синтаксис цикла for выглядит следующим образом:

Данный цикл состоит из ключевого слова for, за которым следуют круглые скобки, содержащие внутри три выражения, разделенных точками с запятой. Он имеет следующий порядок выполнения:

  1. В начале цикла выполняется инициализирующее выражение, оно всегда вычисляется (выполняется) только один раз в самом начале.
  2. Далее следует условное выражение. Перед началом каждой итерации вычисляется значение условного выражения (условие выполнения), если оно принимает значение TRUE, то тело цикла выполняется, если оно принимает значение FALSE, выполнение цикла завершается. Если при первой проверке условие оказывается ложным, тело цикла не выполнится ни разу.
  3. В самом конце, после выполнения действий в теле цикла обрабатывается последнее выражение (следующее выражение после условия). В данном случае это инкрементирующее выражение — оно увеличивает с помощью инкремента значение переменной-счетчика.

Простой пример цикла for:


<?php

  for ($k = 1; $k <= 10; $k++) {
    echo "$k ";
  }
  
?>

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

Цикл for без частей заголовка

Каждое из выражений в заголовке цикла for может отсутствовать.

Если инициализация не нужна или происходит в другом месте, инициализирующее выражение не нужно. Перепишем немного предыдущий пример:


<?php
  
  $k = 1;

  for (; $k <= 10; $k++) {
    echo "$k ";
  }
  
?>

Обратите внимание, символ точки с запятой обязателен, так как означает отсутствующее выражение. Отсутствие выражения условия эквивалентно расположению в условии значения TRUE.


<?php

  for ($k = 1;/* нет условия */; $k++) {
    echo "$k ";
  }
  
  // Это эквивалентно следующему коду
  for ($k = 1; true; $k++) {
    echo "$k ";
  }
  
?>

В этом случае цикл будет выполняться бесконечно. Если отсутствует инкрементирующее выражение, то оно должно быть в теле цикла иначе цикл будет выполняться бесконечно.


<?php

  for ($k = 1; $k <= 10; /* нет выражения */) {
    echo "$k ";
	// значение переменной $k должно изменяться в теле цикла
	// иначе он не завершится
	
	$k++;
  }
  
  // можно убрать все выражения, получив бесконечный цикл
  for (;;) { 
    //...
  }
  
?>

Не стоит забывать о том, что любое из трех выражений или все сразу можно опустить, но разделительные точки с запятой (;) следует ставить всегда.

Несколько выражений в заголовке цикла for

В заголовке цикла for каждое выражение разделенное точкой с запятой может содержать по несколько выражений, разделенных запятыми. Поэтому можно использовать выражения любой сложности.


<?php

  for ($bar = 10, $foo = 1; $foo <= 10; $bar--, $foo++) {
    echo "\$foo: $foo \$bar: $bar
"; } ?>

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


<?php

  // не выполнится так как последнее выражение false
  for ($k = 1; $k <= 10, false; $k++) {
    echo "$k ";
  }
  
?>

Вложенные циклы

Так же как и условные операторы, циклы могут быть вложенными. Простой пример с одним уровнем вложенности:


<?php

  for ($i = 0; $i < 4; $i++) {
    echo "Внешний цикл.<br>";
    for ($j = 0; $j < 2; $j++) {
      echo "Вложенный цикл.<br>";
    }
  }
  
?>

С этой темой смотрят:

puzzleweb.ru

VBA Excel. Цикл For… Next

Цикл For… Next в VBA Excel, его синтаксис и описание отдельных компонентов. Примеры использования цикла For… Next.

Цикл For… Next в VBA Excel предназначен для выполнения группы операторов необходимое количество раз, заданное управляющей переменной цикла — счетчиком. При выполнении цикла значение счетчика после каждой итерации увеличивается или уменьшается на число, указанное выражением оператора Step, или, по умолчанию, на единицу. Когда необходимо применить цикл к элементам, количество которых и индексация в группе (диапазон, массив, коллекция) неизвестны, следует использовать цикл For Each… Next.

  1. Синтаксис цикла For… Next
  2. Компоненты цикла For… Next
  3. Примеры циклов For… Next

Синтаксис цикла For… Next



For counter = start To end [ Step step ]
    [ statements ]
    [ Exit For ]
    [ statements ]
Next [ counter ]


For счетчик = начало To конец [ Step шаг ]
    [ операторы ]
    [ Exit For ]
    [ операторы ]
Next [ счетчик ]

В квадратных скобках указаны необязательные атрибуты цикла For… Next.

Компоненты цикла For… Next

Компонент Описание
counter Обязательный атрибут. Числовая переменная, выполняющая роль счетчика, которую еще называют управляющей переменной цикла.
start Обязательный атрибут. Числовое выражение, задающее начальное значение счетчика.
end Обязательный атрибут. Числовое выражение, задающее конечное значение счетчика.
Step* Необязательный атрибут. Оператор, указывающий, что будет задан шаг цикла.
step Необязательный атрибут. Числовое выражение, задающее шаг цикла. Может быть как положительным, так и отрицательным.
statements Необязательный** атрибут. Операторы вашего кода.
Exit For Необязательный атрибут. Оператор выхода из цикла до его окончания.
Next [ counter ] Здесь counter — необязательный атрибут. Это то же самое имя управляющей переменной цикла, которое можно здесь не указывать.

*Если атрибут Step отсутствует, цикл For… Next выполняется с шагом по умолчанию, равному 1.

**Если не использовать в цикле свой код, смысл применения цикла теряется.

Примеры циклов For… Next

Вы можете скопировать примеры циклов в свой модуль VBA, последовательно запускать их на выполнение и смотреть результаты.

Простейший цикл

Заполняем десять первых ячеек первого столбца активного листа Excel цифрами от 1 до 10:


Sub test1()
Dim i As Long
  For i = 1 To 10
    Cells(i, 1) = i
  Next
End Sub

Простейший цикл с шагом

В предыдущий цикл добавлен оператор Step со значением 3, а результаты записываем во второй столбец:


Sub test2()
Dim i As Long
  For i = 1 To 10 Step 3
    Cells(i, 2) = i
  Next
End Sub

Цикл с отрицательными аргументами

Этот цикл заполняет десять первых ячеек третьего столбца в обратной последовательности:


Sub test3()
Dim i As Long
  For i = 0 To -9 Step -1
    Cells(i + 10, 3) = i + 10
  Next
End Sub

Увеличиваем размер шага до -3 и записываем результаты в четвертый столбец активного листа Excel:


Sub test4()
Dim i As Long
  For i = 0 To -9 Step -3
    Cells(i + 10, 4) = i + 10
  Next
End Sub

Вложенный цикл

Внешний цикл последовательно задает индексы первых десяти строк активного листа, а вложенный цикл складывает числа в первых четырех ячейках строки с текущем индексом и записывает сумму в ячейку пятого столбца. Перед запуском вложенного цикла с накопительным сложением, пятую ячейку соответствующей строки обнуляем, чтобы в случае нахождения в ней какого-либо числа, оно не прибавилось к итоговой сумме.


Sub test5()
Dim i1 As Long, i2 As Long
  For i1 = 1 To 10
'Пятой ячейке в строке i1 присваиваем 0
    Cells(i1, 5) = 0
      For i2 = 1 To 4
        Cells(i1, 5) = Cells(i1, 5) + Cells(i1, i2)
      Next
  Next
End Sub

Выход из цикла

В шестой столбец активного листа запишем названия десяти животных, конечно же, с помощью цикла For… Next:


Sub test6()
Dim i As Long
  For i = 1 To 10
    Cells(i, 6) = Choose(i, "Медведь", "Слон", "Жираф", "Антилопа", _
    "Крокодил", "Зебра", "Тигр", "Ящерица", "Лев", "Бегемот")
  Next
End Sub

Следующий цикл будет искать в шестом столбце крокодила, который съел галоши. В ячейку седьмого столбца цикл, пока не встретит крокодила, будет записывать строку «Здесь был цикл», а когда обнаружит крокодила, запишет «Он съел галоши» и прекратит работу, выполнив команду Exit For. Это будет видно по ячейкам рядом с названиями животных ниже крокодила, в которых не будет текста «Здесь был цикл».


Sub test7()
Dim i As Long
  For i = 1 To 10
    If Cells(i, 6) = "Крокодил" Then
      Cells(i, 7) = "Он съел галоши"
      Exit For
        Else
      Cells(i, 7) = "Здесь был цикл"
    End If
  Next
End Sub

Результат работы циклов For… Next из примеров:

Результат работы циклов For… Next

Такие данные на активном листе Excel вы получите, если последовательно запустите на выполнение в редакторе VBA все семь подпрограмм из примеров, демонстрирующих работу циклов For… Next.

Цикл с дробными аргументами

Атрибуты start, end и step могут быть представлены числом, переменной или числовым выражением:


For i = 1 To 20 Step 2
For i = a To b Step c
For i = a - 3 To 2b + 1 Step c/2   

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


'Значения атрибутов до округления
For i = 1.5 To 10.5 Step 2.51
'Округленные значения атрибутов
For i = 2 To 10 Step 3   

Старайтесь не допускать попадания в тело цикла For… Next неокругленных значений аргументов, чтобы не получить непредсказуемые результаты его выполнения. Если без дробных чисел не обойтись, а необходимо использовать обычное округление, применяйте в коде VBA функцию рабочего листа WorksheetFunction.Round для округления числа перед использованием его в цикле For… Next.

vremya-ne-zhdet.ru

c++ — Удаление элемента из контейнера используя синтаксис цикла for c++11








Stack Overflow на русском



  1. 0


  2. +0



    • Тур

      Начните с этой страницы, чтобы быстро ознакомиться с сайтом



    • Справка

      Подробные ответы на любые возможные вопросы



    • Мета

      Обсудить принципы работы и политику сайта



    • О нас

      Узнать больше о компании Stack Overflow



    • Бизнес

      Узнать больше о поиске разработчиков или рекламе на сайте





  3. Войти
    Регистрация



  4. текущее сообщество




    • Stack Overflow на русском

ru.stackoverflow.com

Python с нуля — часть 5: циклы

Python — цикл for

Цикл for в Python перебирает объекты в переданных ему последовательностях, например —  списки (lists) и строки (strings).

Синтаксис

Синтаксис цикла for в Python такой:

for переменная in последовательность:
   действие(я)

Если последовательность содержит список выражений (операций) — сначала будут обработаны они. Далее, значение первого элемента в последовательности будет присвоено переменной (iterating_var на схеме). Далее выполняется блок кода «действие». Так, значение каждого объекта в последовательности присваивается переменной цикла, и блок кода будет выполняться с ней до тех пор, пока не закончатся объекты в заданной последовательности (например — в списке).

Пример
for letter in 'Python':     # First Example
   print 'Current Letter :', letter

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # Second Example
   print 'Current fruit :', fruit

print "Good bye!"

Результат выполнения этого кода:

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

Обработка в цикле по индексу последовательности

Ещё один вариант обработки последовательности в цикле — это обработка элементов последовательности по их индексам. Вот простой пример:

fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print 'Current fruit :', fruits[index]

print "Good bye!"

Результат выполнения такого цикла:

Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

Тут мы воспользовались встроенной функции len(), которая вычисляет количество элементов в кортеже, и функций range(), которая предоставляет нам элементы последовательности по их индексу.

Мы рассмотрим кортежи и некоторые встроенные функции языка Python далее.

Оператор else в цикле for

В языке Python можно использовать оператор else вместе с циклами.

  • если оператор else используется с циклом for — он будет выполнен, когда список для цикла будет завершен;
  • при использовании else вместе с циклом while — он будет использован, когда условие примет значение ложь (false).

В следующем примере мы продемонстрируем использование оператора else вместе с циклом for, в котором производится поиск простых чисел от 10 до 20:

for num in range(10,20):  #to iterate between 10 to 20
   for i in range(2,num): #to iterate on the factors of the number
      if num%i == 0:      #to determine the first factor
         j=num/i          #to calculate the second factor
         print '%d equals %d * %d' % (num,i,j)
         break #to move to the next number, the #first FOR
   else:                  # else part of the loop
      print num, 'is a prime number'

Результат его работы будет таким:

10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number

rtfm.co.ua

Синтаксис цикла. Основы объектно-ориентированного программирования

Синтаксис цикла

Синтаксис цикла непосредственно следует из предшествующих соображений, определяющих ингредиенты цикла. Он будет включать элементы, отмеченные как необходимые.

[x]. Инвариант цикла inv — утверждение.

[x]. Условие выхода exit, чья конъюнкция с inv дает желаемую цель.

[x]. Вариант var — целочисленное выражение.

[x]. Множество инструкций инициализации, которые всегда приводят к состоянию, в котором inv выполняется, а var становится неотрицательным.

[x]. Множество инструкций body, которое (при условии, что оно начинается в состоянии, где var неотрицательно и выполняется inv), сохраняет инвариант и уменьшает var, в то же время следя за тем, чтобы оно не стало меньше нуля.

[x]. Синтаксис цикла честно комбинирует эти ингредиенты:

from

init

invariant

inv

variant

var

until

exit

loop

body

end

Предложения invariant и variant являются возможными. Предложение from по синтаксису требуется, но инструкция init может быть пустой.

Эффект выполнения цикла можно описать так: вначале выполняется init, затем 0 или более раз выполняется тело цикла, которое перестает выполняться, как только exit принимает значение false.

В языках Pasal, C и других такой цикл называется «циклом while«, в отличие от цикла типа «repeat … until«, в котором тело цикла выполняется, по меньшей мере, один раз. Здесь же тест является условием выхода, а не условием продолжения, и синтаксис цикла явно содержит фазу инициализации. Потому эквивалент записи нашего цикла на языке Pascal выглядит следующим образом:

init;

while not exit do body

С вариантами и инвариантами цикл для maxarray выглядит так:

from

i := t.lower; Result := t @ lower

invariant

-- Result является максимумом нарезки массива t в интервале [t.lower,i].

variant

t.lower - i

until

i = t.upper

loop

i := i + 1

Result := Result.max (t @ i)

End

Заметьте, инвариант цикла выражен неформально, в виде комментария. Последующее обсуждение в этой лекции объяснит это ограничение языка утверждений.

Вот еще один пример, ранее показанный без вариантов и инвариантов. Целью следующей функции является вычисление наибольшего общего делителя — НОД (gcd — greatest common divisor) двух положительных целых a и b, следуя алгоритму Эвклида:

gcd (a, b: INTEGER): INTEGER is

-- НОД a и b

require

a > 0; b > 0

local

x, y: INTEGER

do

from

x := a; y := b

until

x = y

loop

if x > y then x := x - y else y := y - x end

end

Result := x

ensure

-- Result является НОД a и b

end

Как узнать, что функция gcd удовлетворяет своему постусловию и действительно вычисляет наибольший общий делитель a и b? Для проверки этого следует заметить, что следующее свойство истинно после инициализации цикла и сохраняется на каждой итерации:

x > 0; y > 0

-- Пара <x, y> имеет тот же НОД, что и пара <a, b>

Это и будет служить инвариантом цикла inv. Ясно, что inv выполняется после инициализации. Если выполняется inv и условие цикла x /= y, то после выполнения тела цикла:

if x > y then x := x - y else y := y - x end

инвариант inv остается истинным, замена большего из двух положительных неравных чисел их разностью не меняет их gcd и оставляет их положительными. Тогда по завершению цикла следует:

x = y and «Пара <x, y> имеет тот же НОД, что и пара <a, b>»

Отсюда, в свою очередь, следует, что x является наибольшим общим делителем. По определению НОД (x, x) = x.

Как узнать, что цикл всегда завершается? Необходим вариант. Если x больше чем y, то в теле цикла x заменяется разностью x-y. Если y больше x, то y заменяется разностью y-x. Нельзя в качестве варианта выбрать ни x, ни y, поскольку для каждого из них нет гарантии уменьшения. Но можно быть уверен, что максимальное из них обязательно будет уменьшено. Поэтому разумно выбрать в качестве варианта x.max(y). Заметьте, вариант всегда остается положительным. Теперь можно написать цикл со всеми предложениями:

from

x := a; y := b

invariant

x > 0; y > 0

-- Пара <x, y> имеет тот же НОД, что и пара <a, b>

variant

x.max (y)

until

x = y

loop

if x > y then x := x - y else y := y - x end

end

Как отмечалось, предложения invariant и variant являются возможными. Когда они присутствуют, то помогают прояснить цель цикла и проверить его корректность. Для любого нетривиального цикла характерны интересные варианты и инварианты; многие из примеров в последующих лекциях включают варианты и инварианты, обеспечивая глубокое понимание корректности лежащих в основе алгоритмов.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

linux — синтаксис цикла for в сценариях linux shell

Ваша оболочка script (как показано) работает как в оболочке Korn, так и в Bash. Некоторые мысли:

  • Возможно, вам понадобится место после shebang (#!/bin/ bash, а не #!/bin/bash). Тем не менее, Деннис Ритчи изначально указал, что пространство необязательно. Кроме того, это не ошибка, которую вы получаете с оболочкой Bourne (вместо этого вы получаете syntax error: '(' unexpected).
  • Вы в системе Windows? Просто удар в темноте. Это не похоже на ошибку Windows.
  • Является ли эта система Solaris или HP/UX? Возможно, они не запускали настоящие версии Bash, а может быть, более старую версию. Однако даже самая старая версия Bash распознает конструкцию for ((x;y;z)).

Попробуйте следующее:

#! /bin/bash
set -vx
echo "Random = $RANDOM"   #Test for bash/Kornshell. Will be blank in other shells
echo \$BASH_VERSINFO[0] = ${BASH_VERSINFO[0]} #Should only work in BASH
echo \$BASH_VERSINFO[1] = ${BASH_VERSINFO[1]}
echo \$BASH_VERSINFO[2] = ${BASH_VERSINFO[2]}
echo \$BASH_VERSINFO[3] = ${BASH_VERSINFO[3]}
echo \$BASH_VERSINFO[4] = ${BASH_VERSINFO[4]}
echo \$BASH_VERSINFO[5] = ${BASH_VERSINFO[5]}
for ((c=0, c<=5, c++))
do
    echo "Welcome $c times"
done
  • set -xv отобразит все строки по мере их выполнения.
  • $RANDOM должно отображать значение, если это либо Bash, либо Kornshell (цикл for будет работать в любом из них).
  • {$BASH_VERINFO[x]} должен быть установлен только в том случае, если это действительно Bash. Они даже не установлены, даже если вы запускаете оболочку Korn после того, как вы находитесь в Bash (в отличие от $SHELL, который будет содержать bash).

Если цикл for все еще дает вам проблемы, просто удалите его. Где-то в этом script мы выясним, действительно ли вы выполняете оболочку Bash или нет.

David W. 11 апр. ’11 в 21:252011-04-11 21:25

источник
поделиться

qaru.site