Какие параметры оболочки bash используются синтаксическим анализатором?

По какой-либо причине, если ssh становится недоступным, ваш бокс/сервер становится удаленным кирпичом. Debian явно рекомендует избегать обновления dist -при подключении через ssh именно по этой причине. Если вы все равно попытаетесь, Debian установит резервный ssh-сервер на другом порту для целей восстановления после установки.

Итак, что касается Debian, это явно рекомендуемая процедура.

1
18.03.2020, 16:07
1 ответ

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)'работает расширенный глобус.

1
28.04.2021, 23:20

Теги

Похожие вопросы