По какой-либо причине, если ssh становится недоступным, ваш бокс/сервер становится удаленным кирпичом. Debian явно рекомендует избегать обновления dist -при подключении через ssh именно по этой причине. Если вы все равно попытаетесь, Debian установит резервный ssh-сервер на другом порту для целей восстановления после установки.
Итак, что касается Debian, это явно рекомендуемая процедура.
Is it documented somewhere which shell options are used by the parser like extglob and therefore cannot be enabled within a group command that uses them?
Трудно доказать обратное, но я сомневаюсь, что существует исчерпывающий список.
Те, которые влияют на синтаксический анализ, перечислены ниже, могут быть и другие:
extglob
--изменяет значение круглых скобок, которые в противном случае являются специальными символами expand_aliases
--псевдонимы расширяются в процессе обработки довольно рано extquote
--меняет смысловое значение некоторых цитат interactive_comments
--изменяет значение #
в начале слова. Некоторые из опций compat*
также могут иметь аналогичные эффекты, но я оставлю их тестирование кому-то более заинтересованному.
С другой стороны, что-то вроде dotglob
, failglob
и globstar
влияет только на результат glob, а не на то, как он анализируется.
Что касается extglob
, командная строка, подобная !(foo)
, действительна как с установленным extglob
, так и без него. С ним это glob, который соответствует всем файлам, кроме foo
, а без него это подоболочка, выполняющая команду foo
с инвертированным возвращаемым значением.
Обратите внимание, что на практике это не должно быть проблемой. В скрипте вы можете поместить команду shopt
в отдельную строку, чтобы изменения в синтаксическом анализе без проблем влияли на следующую строку. В одном вкладыше -вы можете использовать параметр -O
в командной строке, например. в bash -O extglob -c 'echo !(foo)'
работает расширенный глобус.