Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

для: Традиційна форма оболонки

Оригінальний та цінності Синтаксис команди такий:

та цінності змінна слова]; робити

Команди

зроблений

де змінна це ім'я змінної, яка буде збільшуватися під час виконання циклу, слова є необов’язковим списком елементів, яким буде послідовно призначено змінна та Команди – це команди, які мають виконуватися на кожній ітерації циклу.

Команда та цінності Команда корисна в командному рядку. Ми можемо легко продемонструвати, як це працює:



[me@linuxbox ~]$ для i в ABCD; do echo $i; зроблено

А Б В Г

[me@linuxbox ~]$ для i в ABCD; do echo $i; зроблено

А Б В Г


У цьому прикладі та цінності дається список із чотирьох слів: «A», «B», «C» і «D». Зі списком із чотирьох слів цикл виконується чотири рази. Кожного разу, коли виконується цикл, змінній призначається слово i. Усередині циклу ми маємо нудьгувати команда, яка відображає значення i щоб показати завдання. Як і з в той час як та до петлі, зроблений ключове слово замикає цикл.


Справді потужна особливість та цінності це кількість цікавих способів створення списку слів. Наприклад, через розширення дужок:



[me@linuxbox ~]$ для i в {A..D}; do echo $i; зроблено

А Б В Г

[me@linuxbox ~]$ для i в {A..D}; do echo $i; зроблено

А Б В Г


або розширення імені шляху:



[me@linuxbox ~]$ for i в дистрибутивах*.txt; do echo $i; зроблено

distros-by-date.txt distros-dates.txt distros-key-names.txt distros-key-vernums.txt distros-names.txt distros.txt

distros-vernums.txt distros-versions.txt

[me@linuxbox ~]$ for i в дистрибутивах*.txt; do echo $i; зроблено

distros-by-date.txt distros-dates.txt distros-key-names.txt distros-key-vernums.txt distros-names.txt distros.txt

distros-vernums.txt distros-versions.txt


або заміна команди:



#! / бін / баш

# найдовше слово: знайти найдовший рядок у файлі while [[ -n $1 ]]; робити

якщо [[ -r $1 ]]; тоді max_word= max_len=0

for i в $(рядки $1); do len=$(echo -n $i | wc -c)

якщо (( len > max_len )); тоді max_len=$len max_word=$i

fi

зроблений

echo "$1: '$max_word' ($max_len символів)"

fi зсув

зроблений

#! / бін / баш

# найдовше слово: знайти найдовший рядок у файлі while [[ -n $1 ]]; робити

якщо [[ -r $1 ]]; тоді max_word= max_len=0

for i в $(рядки $1); do len=$(echo -n $i | wc -c)

якщо (( len > max_len )); тоді max_len=$len max_word=$i

fi

зроблений

echo "$1: '$max_word' ($max_len символів)"

fi зсув

зроблений

для: Традиційна форма оболонки


У цьому прикладі ми шукаємо найдовший рядок у файлі. Коли в командному рядку вказано одне або кілька імен файлів, ця програма використовує файл струни програма (яка входить до пакету GNU binutils) для створення списку читабельних текстових «слів» у кожному файлі. The та цінності цикл обробляє кожне слово по черзі і визначає, чи є поточне слово найдовшим із знайдених на даний момент. Коли цикл закінчується, відображається найдовше слово.

Якщо необов’язковий in слова частина та цінності команда пропущена, та цінності за замовчуванням обробляє позиційні параметри. Ми модифікуємо наші найдовше слово скрипт для використання цього методу:



#! / бін / баш

# longest-word2: знайти найдовший рядок у файлі для i; робити

якщо [[ -r $i ]]; тоді max_word= max_len=0

для j в $(рядки $i); do len=$(echo -n $j | wc -c)

якщо (( len > max_len )); тоді max_len=$len max_word=$j

fi

зроблений

echo "$i: '$max_word' ($max_len символів)"

fi зроблено

#! / бін / баш

# longest-word2: знайти найдовший рядок у файлі для i; робити

якщо [[ -r $i ]]; тоді max_word= max_len=0

для j в $(рядки $i); do len=$(echo -n $j | wc -c)

якщо (( len > max_len )); тоді max_len=$len max_word=$j

fi

зроблений

echo "$i: '$max_word' ($max_len символів)"

fi зроблено


зображення

Як бачимо, ми змінили зовнішній цикл та цінності замість в той час як. Пропускаючи список слів у та цінності команди, замість них використовуються параметри позиції. Усередині циклу попередні екземпляри змінної i були змінені на змінну j. Використання зсув також ліквідовано.


Чому я?

Можливо, ви помітили, що змінна i був обраний для кожного з та цінності приклади циклу вище. Чому? Насправді жодної конкретної причини, окрім традицій. Змінна, що використовується з та цінності може бути будь-якою допустимою змінною, але i є найпоширенішим, за яким слідує j та k.



зображення

Основою цієї традиції є мова програмування Fortran. У Fortran неоголошені змінні, що починаються з літер I, J, K, L і M, автоматично вводяться як цілі числа, тоді як змінні, що починаються з будь-якої іншої літери, вводяться як дійсні (числа з десятковими дробами). Така поведінка змусила програмістів використовувати змінні I, J і K для змінних циклу, оскільки було менше роботи, щоб використовувати їх, коли була потрібна тимчасова змінна (як змінні циклу часто бувають).

Це також призвело до наступної дотепності на основі Fortran: «БОГ реальний, якщо не оголошено ціле число».


Найпопулярніші хмарні обчислення ОС на OnWorks: