Вы вызываете команду [
с операторами сравнения -lt
/ -gt
десятичных целых чисел для операндов, которые не всегда являются десятичными целыми числами.
Вы можете увидеть, что произойдет, если запустить скрипт с bash -x
. Вы увидите такие вещи, как:
+ f=
+ '[' '' -gt 0 ']'
./myscript: line 15: [: : integer expression expected
С:
while [ "$i" -lt "$n" ]
do
[...]
d=${array[$i+1]}
На последнем проходе в этом цикле вы попытаетесь получить доступ за пределами последнего элемента массива, поэтому $d
будет пустым.
Вы также инициализируете $b
как строку 0, а затем обращаетесь к ней как к массиву. Посмотрите также, как f=${b[$j]}
даст вам пустой $f
, за исключением случая, когда $j
равно 0.
Я не знаю, что вы пытаетесь сделать с этим кодом, но, похоже, вам нужно вернуться к чертежной доске.
Не уверен, что это именно ваша проблема, но я столкнулся с той же ошибкой, когда устанавливал Mint для двойной -загрузки с Windows. У моего ноутбука HP была опция в
, чтобы добавить индивидуальную загрузку.
Это позволяет вам ввести путь, и именно здесь я добавил \EFI\ubuntu\shimx64.efi
.
Затем я изменил порядок загрузки, чтобы поверх него была настроенная загрузка, и он магическим образом загрузился в GRUB. Если вы можете сделать что-то подобное, это может решить проблему для вас.