Переменные Awk обрабатываются как строки. Вы даже не можете передать массив , не говоря уже об условии. Но вам не нужно. Вместо того, чтобы передавать условие, просто передайте значение, необходимое для запуска:
if( $1 == cond ) {
color="BLUE"
}
Затем вы запускаете скрипт с помощью:
/gk/laaz/csv2html.sh sample.csv sample.html 180817CR0003988
Похоже, что команда bootctl
в системе «обычное оборудование» не может подтвердить, что система была загружена с помощью systemd-boot
. Это может быть связано с какой-то ошибкой или странностью прошивки UEFI этой системы, или потому, что система еще не загрузилась с systemd-boot
.
Пожалуйста, запустите efibootmgr -v
на "обычном оборудовании" и добавьте вывод в исходное сообщение. Это показало бы фактическое содержимое переменных загрузки UEFI :, просмотр необработанных данных, а не просто bootctl
их анализ, мог бы дать некоторые дополнительные подсказки о том, что происходит.
Похоже, у вас вообще нет переменных с такими именами, как 8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot*
. Как будто все ваши загрузочные переменные UEFI были стерты. Это определенно объясняет, почему bootctl status
кажется неуверенным в текущем загрузчике :, он не находит загрузочную переменную 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootCurrent
, которая документировала бы то, как прошивка в настоящее время загружает систему.
Если удаление GRUB привело к удалению всех загрузочных переменных, это, вероятно, ошибка :, которая является излишне антисоциальным -поведением по отношению к любым другим загрузчикам. Или, возможно, это ошибка прошивки UEFI :реализация прошивки UEFI некоторых поставщиков автоматически очищает все загрузочные переменные, которые относятся к дискам или разделам, которые больше не существуют, но, возможно, это было слишком -усердием в уборка? (Обновление микропрограммы системы может решить эту проблему.)
Отсутствие загрузочных переменных UEFI приведет к тому, что микропрограмма попытается найти раздел ESP на любом диске, который она может найти, в некотором порядке, который, вероятно, известен только программистам микропрограммы. Когда он находит/EFI/BOOT/BOOTX64.EFI
(относительно корня раздела ESP; в Mint полный путь к нему будет /boot/efi/EFI/BOOT/BOOTX64.EFI
), он будет использовать его для загрузки системы. На съемных носителях наличия /EFI/BOOT/BOOTX64.EFI
в любой файловой системе, которая понимается прошивкой, может быть достаточно для загрузки с этого носителя.
Предполагая, что диск, содержащий ваш раздел ESP (, то есть файловая система /boot/efi
)— это /dev/sda
, вы можете запустить эту команду:
sudo efibootmgr -b 0000 -c -d /dev/sda -l \\EFI\\systemd\\systemd-bootx64.efi -L "Linux Mint"
Это должно создать загрузочную переменную 8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0000
и сделать так, чтобы она правильно указывала на загрузчик systemd-bootx64.efi
. Это также даст этому варианту загрузки удобочитаемое -имя «Linux Mint»; вы можете увидеть это в настройках загрузки прошивки (, вы можете знать их как «настройки BIOS» ).
Он также должен автоматически создать переменную 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootOrder
и сделать параметр загрузки 0000 (, то есть переменную, только что созданную выше ), первым и единственным активным параметром загрузки на данный момент.
Если кажется, что загрузочные переменные не «прилипают» при добавлении с помощью efibootmgr
, то у вас определенно есть система с причудливой прошивкой UEFI. Самые первые реализации UEFI от каждого поставщика, как правило, содержали ошибки, которые были исправлены позже :. Если ваша «обычная аппаратная» система не совсем новая, в ней все еще может быть одна из ранних реализаций UEFI. Вы можете попробовать и посмотреть, сможете ли вы добавить путь к загрузчику UEFI в меню настроек прошивки; такой способ может удовлетворить неизвестному условию, из-за которого прошивка отклоняет любые загрузочные переменные, созданные efibootmgr
.
В этом случае вы также можете прочитать страницу Родерика В. Смита о «загрузочных переворотах» -, она написана в основном с учетом загрузчика rEFInd,но это отличное описание различных особенностей прошивки UEFI и доступных для них обходных путей.