Centos Mounting /usr to new partition

Here-документ - это перенаправление вида:

<<[-]DELIMITER
    ....
    ....
    ....
DELIMITER

Необязательные - (внутри скобок выше) изменяют способ сопоставления разделителя и позволяют отступать каждую строку внутри содержимого heredoc с табуляцией (пробелы не допускаются).

  • "Совпадает" означает, что разделитель сопоставляется с открывающим (как, например, когда DELIMITER совпадает с < или <<-DELIMITER).

  • Обратите внимание, что вы можете использовать один или несколько пробелов между << или <<-, и словом, которое следует за ними).

Итак, подытожим основные законы сопоставления внутри singlar heredoc:

  1. Разделитель должен располагаться в самом начале строки в применимом синтаксисе.
  2. Разделитель должен быть единственным словом своей строки.
  3. Все содержимое под разделителем (включая разделитель) может быть отступлено любым количеством табуляций, с синтаксисом <<-DELIMITER.

Поскольку при прежнем синтаксисе никакие пробелы не могут предшествовать открывателю heredoc, если вы хотите сделать отступ, ваш единственный выбор - использовать следующий синтаксис, и вы должны использовать исключительно табуляции в начале каждой строки внутри содержимого heredoc.

Теперь у вас есть два варианта синтаксиса <<-.

Первый вариант

Используйте синтаксис <<- для внутреннего heredoc.

bash << APACHE
    ... 
    ... 
    cat <<- MOD_REWRITE
⇨       ...     
⇨       ....    
⇨       MOD_REWRITE
    ... 
    ... 
APACHE

(отступ - 4 пробела, табуляции обозначаются символами )

Код, видимый bash, будет точно таким же, как на вашем экране (т.е. bash будет видеть отступ каждой строки так, как вы видите его сейчас). Когда внутренний heredoc будет выполнен, благодаря синтаксису <<-, bash удалит символы табуляции, ведущие каждую строку до разделителя MOD_REWRITE.

Второй вариант

Используйте синтаксис <<- для внешнего heredoc.

bash <<- APACHE
⇨       ...
⇨       ...
⇨       cat << MOD_REWRITE
⇨       ⇨       ...
⇨       ⇨       ....
⇨       MOD_REWRITE
⇨       ...
⇨       ...
APACHE

В этот раз код, видимый bash, будет отличаться от того, что видите вы: он не будет содержать ведущей табуляции. Поэтому не проблема, что я использую синтаксис << для внутреннего heredoc: разделитель MOD_REWRITE будет находиться в начале строки.

В обоих случаях разделитель MOD_REWRITE распознается, и ваш конфигурационный файл Apache /etc/apache2/apache2.conf не имеет отступов. Если вы хотите сделать отступы в его части, единственная возможность - использовать пробелы (после начальных табуляций, которые будут удалены).

Конечно, есть и третий вариант: использовать синтаксис <<- для обоих heredoc, но это ничего не изменит по сравнению с вариантом 2, поскольку все ведущие табуляции удаляются, когда код отправляется в bash.

1
09.01.2017, 11:07
1 ответ

Согласно ряду статей, которые я прочитал за последние пару лет, размещение / usr в отдельном разделе ] не рекомендуется . Более того, части подсистем ОС пользователя выйдут из строя (в основном, незаметно).

Ссылки

Честно говоря, один из них взят из Fedora, но в статье довольно много говорится о том, что это не Это изменение, специфичное для Fedora.

1
27.01.2020, 23:46

Теги

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