Перейти к главному содержимому

Цикл по строкам или файлам и каталогам в bash

Однострочник - выполнение команды в цикле

while true; do echo 'Hit CTRL+C'; sleep 1; done

Цикл по массиву строк

#!/bin/bash

####################################
# Массив строк с именем "arrayname"
####################################
arrayname=( one two three )

####################################
# Цикл по элементам массива
####################################
for i in "${arrayname[@]}"
do
    echo "$i"
done

Цикл по файлам и каталогам

#!/bin/bash

################################
# Цикл по файлам и каталогам
################################
for v in ../src/*
do
  echo "$v"
done

Цикл по каталогам c формированием списка в переменной

#!/bin/bash

################################
# Пустой список каталогов
all_dirs=""

################################
# Цикл по каталогам
################################
for v in ../src/*
do
  if [ -d "$v" ]; then
    echo "$v"
    # Дополнение списка каталогов (разделитель - перенос строки)
    all_dirs+="$v"$'\n'
  fi
done

echo "----"

echo "$all_dirs"