Это просто центральное место, где службы могут отправлять и читать сообщения о своих событиях. Посмотрите на удобный для человека интерфейс на https://apps.fedoraproject.org/datagrepper/raw , чтобы получить представление.
Advanced Bash-Scripting Guide не всегда надежен, и его примеры сценариев содержат устаревшие методы, такие как использование эффективно устаревших обратных ссылок для подстановки команд, то есть `command`
а не $ (команда)
.
В данном конкретном случае это явно неверно.
В разделе Функции оболочки в (каноническом) руководстве Bash окончательно сказано, что
функции оболочки выполняются в текущем контексте оболочки; для их интерпретации не создается никакого нового процесса.
Функции фигурных скобок будут выполняться в вызывающем процессе оболочки, если им не нужна их собственная подоболочка, а именно:
и
Перенаправления или дополнительный env. переменные не будут принудительно создавать новую подоболочку:
hw(){
echo hello world from $BASHPID
echo var=$var
}
var=42 hw >&2
echo $BASHPID #unexports var=42 and restores stdout here
Если вы определяете функцию в круглых скобках вместо фигурных скобок:
hw()(
echo hello world from $BASHPID
)
hw
echo $BASHPID
она всегда будет запускаться в новом процессе.
Подстановка команд $ ()
также всегда создает процессы в bash (но не в ksh, если вы запускаете встроенные команды внутри него).
Команда, о которой идет речь в этом примере, выглядит так:
echo ${arrayZ[@]/%e/$(replacement)}
В приведенном ниже примере говорится:
# $( ... ) is command substitution.
# A function runs as a sub-process.
Благотворительность для руководства ABS, что они, по-видимому, имели в виду write заключается в том, что функция выполняется внутри подстановки команд , а команда внутри подстановки команд выполняется в подоболочке .