Интересный момент!
Я никогда не спотыкался через это, потому что я не друг set -e
(Вместо этого я предпочитаю trap ... ERR
) но уже протестированный, что: trap ... ERR
также не фиксируйте ошибки в $(...)
(или старомодные обратные галочки).
Я думаю, что проблема (как так часто), что здесь подоболочку называют и -e
explicitely означает текущую оболочку.
Только другое решение, которое пришло на ум в данный момент, будет состоять в том, чтобы использовать чтение:
ls -l ghost_under_bed | read name
Это бросает ERR
и с -e
оболочка будет завершена. Только проблема: это работает только на команды с одной строкой вывода (или Вы передаете по каналу через что-то, что присоединяется к строкам).
Я достиг функциональности, которую я искал при помощи 'savedefault' опции GRUB. Я раньше устанавливал, это - значение к другой операционной системе в конце записи каждой ОС в menu.lst.
Большое спасибо ко всем, кто пытался помочь.:)
Поместите что-то в сценарии запуска для перезаписи menu.lst
.
Поэтому имейте Ubuntu, пишут версию menu.lst
это загружает OpenSuSE, и сделайте, чтобы OpenSuSE записал версию, которая загружает Ubuntu.
Относительно безопасный способ сделать это должно было бы иметь 3 файла, menu.lst
, menu.lst.ubuntu
и menu.lst.SuSE
и имейте сценарии, сделайте:
cp menu.lst.ubuntu menu.lst
на SuSE и:
cp menu.lst.SuSE menu.lst
на Ubuntu.
Lilo может сделать это.
Но Вы могли бы рассмотреть простой сценарий в каждой ОС, которая устанавливает другую ОС как значение по умолчанию личинки. Например, следующий сценарий изменил бы a default 1
установка на default 0
:
echo -e "g/default 1/d\ni\ndefault 0\n.\nw" | ed /boot/grub/menu.lst
(редактор во многом как Vi. Выполненный просто первая команда, которая будет видеть то, что это делает.)
На другой ОС Вы могли выполнить дубликат:
echo -e "g/default 0/d\ni\ndefault 1\n.\nw" | ed /boot/grub/menu.lst
Что Ваша причина/цель состоит в том, чтобы сделать это?
Вы рассмотрели просто выполнение двух различных виртуальных машин? Если VMs можно рассмотреть, существует много различных способов выполнить это из самой хост-машины, не вмешиваясь в гостей.