Вам не хватает третьей части for (( init; condition; increment))
. Правильная версия должна быть
for (( i=0; i<=$(cat filename | wc -l); i++ )); do
mkdir /PATH/$i
done
Однако это очень грубый способ решения проблемы. Лучшим подходом было бы следующее (любезно предоставлено tripleee)
seq 0 $(wc -l <filename) | xargs -I mkdir /PATH/{}
Обратите внимание, что обе команды создадут на один каталог больше, чем в файле есть строки. Для файла с двумя строками будут созданы каталоги 0
, 1
и 2
. Если это была ошибка в вашем исходном скрипте, измените 0
в скриптах на 1
.