Чтобы не держать в голове всю синтаксическую магию, собрали удобные примеры: for, while, until, диапазоны, чтение файлов и даже управление потоком с break и continue.
for i in /etc/*; do
echo $i
done
# То же самое (альтернативный синтаксис), также работает с другими видами циклов
for i in /etc/*
do
echo $i
done
for ((i = 0; i < 100; i++)); do
echo $i
done
# альтернативный синтаксис
for ((i = 0; i < 100; i++))
do
echo $i
done
for i in {1..10}; do
echo "Number: $i"
done
# С шагом
# ⇒ {НАЧАЛО..КОНЕЦ..ШАГ}
for i in {5..50..5}; do
echo "Number: $i"
done
# увеличение значения
i=1
while [[ $i -lt 4 ]]; do
echo "Number: $i"
((i++))
done
# уменьшение значения
i=3
while [[ $i -gt 0 ]]; do
echo "Number: $i"
((i--))
done
# длинная форма while true
while true; do
# TODO
# TODO
done
# или короткая запись
while :; do
# TODO
# TODO
done
# использование пайпов
cat file.txt | while read line
do
echo $line
done
# ИЛИ использование перенаправления ввода
while read line; do
echo $line
done < "/path/to/txt/file"
# команда seq может использоваться для генерации диапазонов
for number in $(seq 1 3); do
if [[ $number == 2 ]]; then
continue
fi
echo "$number"
done
for number in $(seq 1 3); do
if [[ $number == 2 ]]; then
# Пропустить оставшуюся часть цикла или выйти из цикла
break
fi
# Здесь выведется только 1
echo "$number"
done
# увеличение значения
count=0
until [ $count -gt 10 ]; do
echo "$count"
((count++))
done
# уменьшение значения
count=10
until [ $count -eq 0 ]; do
echo "$count"
((count--))
done
#root_prompt


