У меня ещё осталась пара тем по SSH, но пока отдохните, наберитесь сил… Я тут решил протестировать циклы for и поделиться результатами.
for ((i = 0 ; i < 100 ; i++)); do
echo $i
done
Годный цикл. Главное — логичный и понятный.
for i in {1..3}; do
echo $i
done
# или его расширенная версия с шагом
for i in {50..5..-5}; do
echo $i
done
Возможно построение циклов с нарастанием и убыванием. Циклы не допускают подстановки переменных в параметры цикла!!! Чистый башизм. Не рекомендую.
for i in $(seq 1 10); do
echo $i
done
У разработчиков seq странная логика: seq [OPTION]... FIRST INCREMENT LAST. INCREMENT в середине!!! Несмотря на логику, рекомендую.
IFS=$'\n'
for i in $(cat /etc/passwd); do
echo $i
done
Годный цикл для построчного чтения файла, но нужно помнить про разделитель IFS.
for i in "./space test/"*; do
echo $i
done
Годный цикл для перебора файлов, обратите внимание: путь в кавычках, а звёздочка — нет.
for i in 5 9 8 3; do
echo $i
done
Годный цикл с перечислятельством для не очень больших количеств.
echo 1 2 3 | for i in $(</dev/stdin); do
echo $i
done
Если цикл не работает — верните IFS=" ".
Тройка упоротых конструкций:
for ((a=0,b=9;a<10;a++,b--)); do
echo $a,$b
done
for ((a=1;a<2000;a+=a)); do
echo $a
done
for i in $(j=10;while ((j--));do echo $j;done); do
echo $i
done
Продолжение следует… © by Tagd Tagd








Комментарии