Я не стал придумывать новую программу, а только внёс изменения подсказанные ALiEN175, valrust и я собирался написать скрипт для операций с резервной копией, но столкнулся с тем, что значение переменной цикла невозможно передать в переменную окружения с помощью export, см.скрипт glob_loc_var.bh:
#!/bin/bash
# cd "~/" # установка текущим любого каталога, в данном случаи Домашнего, тогда не надо указывать путь в ls.
declare -i N=2 NG NUM # определение целых переменных окружения
ls -R1 "/home/topol/Документы/Linux/Отладка РК/Отладка РК вход" | while read file # начало цикла: перебор всех файлов и каталогов с пробелами
# ls -1 - отображать один файл на одну строку, -R - рекурсивно отображать содержимое поддиректорий.
do
N=$(($N+1)); export N
export NG=$N # копирование из переменой цикла в переменную окружения
# echo $((NUM+1)) # всегда=1
if [ -d $file ]; then
echo "Обрабатывается каталог с пробелами: $file"
elif [ -f $file ]; then
echo "Обрабатывается файл с пробелами: $file"
else
echo "Обрабатывается и не файл и не каталог: $file"
fi
echo "\$N= $N \$NG= $NG после подсчёта , -есть счёт в переменной цикла"
done
echo "Всего файлов и папок \$N= $N \$NG= $NG , -передачи в переменные окружения нет"
## ~/glob_loc_var.bh -строка запуска скрипта, чтобы работал не забыть сделать исполняемым
Я считаю,что нет языка программирования без переменных доступных везде, в Bash-скрипте они называются переменными окружения, но как из цикла передать значения в переменными окружения я не соображу: надежда только на всезнающего All'a.