Я вижу по крайней мере одну ошибку, которая могла бы объяснить проблему. Я не просматривал подробно ваш сценарий. Посмотрите, что делает эта строка:
for line in `cat ${PARAMETERSFILE}`
PARAMETERSFILE
. cat
для указанного файла. cat
, так как это подстановка команды . [help]
, backupdir = "Backup
, Home
, Directory
, "
, , user = "MySQL
, База данных
, Имя пользователя"
,… На этот раз некоторые слова содержат символы подстановки, поэтому они будут интерпретированы как шаблон глобуса. Если шаблон не соответствует ни одному файлу, он остается как есть. Если шаблон соответствует хотя бы одному файлу, он заменяется списком совпадающих файлов.
Строка типа [help]
представляет собой шаблон глобуса, который четыре возможных совпадения с односимвольными именами файлов: h
, e
, l
], p
. Таким образом, если вы запустите сценарий в каталоге, который не содержит файлов ни с одним из этих имен, слово [help]
останется неизменным, но если, например, текущий каталог содержит файл с именем h
, тогда [help]
заменяется на h
.
для строки в…
не разбивает ввод на строки. Самый простой способ сделать это -
while IFS= read -r line; do
…
done <"$PARAMETERSFILE"
IFS = read -r line
читает ровно одну строку, и никакой другой символ, кроме новой строки, не является специальным. Если вы хотите удалить начальные и конечные пробелы, удалите IFS =
. Если вы хотите, чтобы обратная косая черта служила символом продолжения строки (т.е. обратная косая черта в конце строки игнорирует следующую новую строку), удалите -r
.
Чтобы обойти ограничение в 4 основных раздела, вы можете создать расширенный раздел вместо основного раздела, а затем разделить его на четыре логических раздела (/
, /boot
, /swap
и/home
).
Кроме того, в установщике CentOS выберите параметр для повторного -форматирования этих разделов (, кроме свопа, конечно ). Это решило проблему для меня, когда у меня было такое же сообщение об ошибке.