Что вы сделали, чтобы сделать Arch видимым для GRUB Ubuntu?
Вы редактировали папку Ubuntu /etc/grub.d/40_custom
или добавляли другой файл в папку Ubuntu /etc/grub.d/
? Тогда этот файл, скорее всего, будет содержать фактические параметры ядра, используемые при загрузке Arch; отредактируйте этот файл, затем запустите sudo update-grub
в Ubuntu.
Или загрузочная запись для Arch появлялась автоматически при запуске sudo update-grub
в Ubuntu? В этом случае скрипт os-prober
(, вызванный /etc/grub.d/30_os-prober
наsudo update-grub
)в Ubuntu, может автоматически -обнаруживать установку Arch :, он на самом деле ищет /boot/grub/grub.cfg
в любой другой установке Linux. он находит, поэтому, если вы сделаете его в Arch, а затем запустите sudo update-grub
в Ubuntu, он может фактически подобрать любые параметры загрузки ядра, указанные в этом файле, на стороне Arch,даже если в Arch не установлена «настоящая» вторая копия GRUB. Может быть достаточно иметь файл конфигурации GRUB в ожидаемом месте.
Надежное и переносимое решение должно :использовать переменную и соответствующую ей переменную (Parameter? )расширения.
str="fram-saml-idp-signing-certificate=MIIDYTCCAkmifzlwq5yziqyU04eP4wLr3cM="
key=${str%%=*} # select the string up to the first =
value=${str#"$key="} # take all that is not the variable above.
echo "KEY: ${key}";echo "VALUE: ${value}"
Работает во всех оболочках Bourne (ksh, bash, zsh, кроме самой старой оболочки Bourne ).
Правила для «Разбиения слов» весьма византийские (читайте ссылки по теме ниже для деталей, много «особых случаев» ).
Два (или более )завершающих разделителя удаляются не во всех оболочках. Но один завершающий разделитель удаляется в dash, bash и ksh (, но zsh не удаляет его ).
Надежное решение в bash заключается в использовании совпадения с регулярным выражением:
str='fram-saml-idp-signing-certificate=MIIDYTCCAkmifzlwq5yziqyU04eP4wLr3cM='
re='^([^=]*)=(.*)';
[[ $str =~ $re ]] && key="${BASH_REMATCH[1]}" value="${BASH_REMATCH[2]}";
echo "KEY: ${key}";echo "VALUE: ${value}"
Что будет (правильно )печатать:
KEY: fram-saml-idp-signing-certificate
VALUE: MIIDYTCCAkmifzlwq5yziqyU04eP4wLr3cM=
Похожие
Что касается последнего поля, оканчивающегося одним разделителем, все известные оболочки соглашаются и удаляют этот разделитель.
Если имеется более одного завершающего разделителя, все зависит от обстоятельств, и сомнительно, можно ли ожидать определенного поведения.
Bourne Shell
, ksh88
, POSIX-варианты ksh88
и bosh
включают разделители в последнюю переменную только в том случае, если за ними следует не -пустое поле.
ksh93
и bash
включают немодифицированную остальную часть ввода, если имеется более одного завершающего разделителя.
Заявления POSIX:
If there are fewer vars than fields, the last var shall
be set to a value comprising the following elements:
, но не объясняет, считается ли пустое поле между двумя разделителями полем. Итак, насколько я понимаю, поведение ksh88
и ksh93
может быть правильным, и по этой причине точное поведение кажется неопределенным.