Это симптоматично для этих двоих вместе:
-u
, что приводит к тому, что неустановленные переменные вызывают ошибкуunbound variable
WARN
не была установлена Чтобы подтвердить или исключить эту ситуацию, выполните:
echo $-
, установлен ли флаг u
echo "$WARN"
, чтобы убедиться, что он установлен, или выполните отладку с помощью параметра x
Основываясь на другом вопросе, упомянутом в моем комментарии, вот мое предложение (не проверено)
cd /share
do
for allfiles in $(find /share/ -maxdepth 1 -type f -iname "*" -mmin +1);
do
aveIFS="$IFS"; IFS=''; ls $file;
sudo mv "$allfiles" /schoolstore/
IFS="$saveIFS"
done
Вероятно, есть способы его оптимизировать, и я удалил while
часть вашего кода, так как кажется, что это не остановит.
Само собой разумеется, сделайте резервную копию всех ваших файлов перед запуском этого типа кода (или любого другого кода в этом отношении ).
В качестве альтернативы вместо изменения $IFS эту операцию можно было бы выполнить только с помощью одной команды find
с использованием флага -exec
. Вот что я имею в виду (еще раз, непроверенный):
find /share/ -maxdepth 1 -type f -iname "*" -mmin +1 -exec mv {} /schoolstore/ \;