training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Цикл for BASH

Создано: 21 февраля 2017Автор: Егор Астапов1912 просмотровСложность: легкий

Цикл for BASH. Довольно часто нужно циклично обрабатывать данные в BASH. Вы можете использовать как цикл while, так и for. Мне нравится цикл for. Перед тем как крутить цикл нужно проверить переменную на существование и подсчитать количество её элементов. Выводить один элемент циклом смысла не имеет. Должно быть как минимум 2 элемента в массиве. Можно и один элемент крутить, но это плохой пример! Если вы работали с PHP, то вы легко справитесь с поставленной задачей.


#!/bin/bash
str=" - число"

for index in 1 2 3 4 5
do
   echo $index$str;
done

В первом примере мы выводим значения переменной index. Во втором примере реализован вывод списка файлов. Обратите внимание на то что команда ls работает как функция.


#!/bin/bash
# список файлов в качестве массива
for file in $(ls -l); do echo "$file"; done

#цикл в одну строку, список названий файлов без данных
for file in $(ls); do echo "$file"; done

# в несколько строк
for file in $(ls -l)
do 
   echo "$file";
done

В этом примере я перебираю все названия файлов. Вы можете заменить команду echo командой cat. В этом случае будут прочитаны все файлы .txt.


#выводим названия файлов
for myfile in `ls *.txt`; do
  echo $myfile
done

#вывод
file10.txt
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt
file6.txt
file7.txt
file8.txt
file9.txt

Тут я перебираю последовательность от 1 до 10.


#перебираем последовательность чисел от 1 до 10
for x in {1..10}; do
  echo "X = $x"
done

#вывод
X = 1
X = 2
X = 3
X = 4
X = 5
X = 6
X = 7
X = 8
X = 9
X = 10

Комментарии

реклама