Ядро проблемы: ваш скрипт cd вернулся к dump, а не к родителю dump/.
На первой итерации:
Вы начинаете в родительском каталоге dump, где dump/ существует dump/var1, созданный вами cd в dump/var1. Когда cd .. происходит, вы возвращаетесь к dump/. Текущий рабочий каталог dump, и там есть только var1, больше ничего.На второй итерации:
Вы начинаете в родительском каталоге dump, где dump/ существует Ваш скрипт все еще делает cd .. , поэтому до 3-го итерационного текущего рабочего каталога изменяется от родителя dump/ до dump/.Для третьей итерации:
Ваш скрипт по-прежнему выполняет cd .., поэтому до 3-го итерационного текущего рабочего каталога изменяется от родителя dump/ до dump/. dump/var1Вы можете это ясно видеть, когда вы выполняете наш скрипт с set -x для вывода отладки, добавленного после строки #!/bin/bash или путем [ f40] как первая команда на каждой итерации скрипта.
Как я рекомендую исправить ваш скрипт, сначала cd в dump/, а затем запустите цикл for. Другими словами:
cd "$D"
for i in {1..24}
do
mkdir "$i"
cd "$i"
# do whatever you want inside "$i"
cd ..
done
Среди прочего, я предлагаю использовать [ -d "dump" ] вместо -e, потому что это поможет вам убедиться, что существующий файл на самом деле является каталогом, хотя это может занять дополнительные соображения.
PXE (среда выполнения Preboot) - это то, что вы, вероятно, ищете. С его помощью вы можете загружать многие компьютеры вплоть до процесса установки (чтобы вы могли установить Ubuntu на десятках компьютеров одновременно) или на рабочем столе. В Wiki есть несколько миллиардов гидов, но вот два из лучших, которые я видел:
https://help.ubuntu.com/community/Desktop/PXE https: // help.ubuntu.com/community/DisklessUbuntuHowto Некоторые страницы LTSP тоже удобны.Прямая загрузка PXE, как это создает «толстый клиент». Все вычисления происходят на стороне клиента и (по умолчанию). Это хорошо, если все клиенты имеют достаточную вычислительную мощность, но менее эффективны, если вы предпочитаете мощный сервер и множество маломощных «тонких клиентов». Также нет усилий (по умолчанию) синхронизировать пользователей или их файлы.
Если вы хотите продолжить идею загрузки полных рабочих столов с файлами синхронизации, вы должны взглянуть на LTSP.
Я думал об этом раньше, но моя главная проблема с PXE заключается в том, что вам необходимо настроить отдельная сеть с собственным DHCP-сервером. Все это можно сделать на рабочем столе Ubuntu, но это может стать довольно сложным, когда дело доходит до объединения двух сетей. Если вы хотите, чтобы клиенты Live CD имели интернет-шлюз, например, он становится довольно волосатым. Чрезвычайно возможно, но это может дать вам головную боль.
Это описано здесь на wubuntu wiki. Здесь подробно описывается мультизагрузка.
Комбинация двух из них должна обеспечить вас именно там, где вы хотите быть ...
Первое, что вы загружаете по сети и притворяетесь, что нет диска. На втором показан вариант BootLocal.