ssh -t -t username@hostname << ENDSSH
...
echo \$end_pos;
Если вам не нужно раскрывать какие-либо переменные из внешней оболочки в here-doc, который идет к SSH, вы можете использовать << "ENDSSH"
с кавычками вокруг разделителя, чтобы иметь здесь-doc воспринимается как строка в одинарных кавычках. Тогда вам не нужно экранировать каждый знак $
внутри него.
if [ "$end_pos" == "*Stop*" ]; then
Если вы хотите сравнить значение с *Stop*
как шаблон, а не как литеральную строку, вам нужно использовать [[ .. ]]
или более стандартный case
:
if [[ $end_pos = *Stop* ]] ; then
...
# or
case "$end_pos" in
*Stop*) echo "stop found" ;;
*) echo "stop not found" ;;
esac
Кроме того, break
выглядит неуместно, цикла нет. Bash будет жаловаться на это, но только если эта часть оператора if будет выполнена. Два exit
подряд тоже кажутся немного избыточными.
Найдите правильный раздел, в котором находится bootmgfw.efi, и установите корневой раздел соответствующим образом. Чтобы найти раздел, в котором находится bootmgfw.efi, перейдите в режим спасения grub (нажмите 'e', затем F2), а затем введите ls. Это покажет вам разделы (как windows, так и centos). Методом проб и ошибок попробуйте найти bootmgfw.efi, введя ls (hd0,gpt1)
и так далее. Как только вы нашли раздел с bootmgfw.efi, укажите этот раздел в строке set root=
. Это должно найти менеджер загрузки windows efi и позволить вам загрузиться в Windows.