Цикл 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