Одинокий!
в начале команды отменяет статус выхода команды или конвейера :, если команда выходит 0
,он перевернется в1
(отказ ), и если он выйдет не -ноль, он превратит его в0
(успешный )выход.
Это использование задокументировано в руководстве Bash:
If the reserved word ‘!’ precedes the pipeline, the exit status is the logical negation of the exit status as described above.
Команда !
без следующей команды отменяет пустую команду, которая ничего не делает и возвращает истину (, эквивалентную команде :
). Таким образом, он инвертирует истину в ложь и выходит со статусом 1, но не выдает ошибки.
Существуют и другие варианты использования !
в командахtest
и [[
, где они отменяют условную проверку. Они не связаны с тем, что вы видите. Как в вашем вопросе, так и в этих случаях это не связано с расширением истории, а !
отделено от любых других терминов.
Я думаю, что ваши virtual_mailbox_base = /
и home_mailbox = /var/spool/mail/vmail/trest/Maildir/
неверны. Вы можете прочитать здесь:
home_mailbox (default: empty) Optional pathname of a mailbox file relative to a local(8) user's home directory.
У вас не локальные пользователи, а «виртуальные пользователи», поэтому не используйте home_mailbox
.
Обычно я просто использую:
mydomain = domain.eu
, virtual_mailbox_domains = domain.eu
virtual_mailbox_base = /var/mail/
, virtual_mailbox_domains = domain.eu
и virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes
затем я создаю папку /var/mail/domain.eu
и определяю «виртуальных пользователей» и их соответствующие почтовые ящики (относительноvirtual_mailbox_base
)внутри/etc/postfix/virtual_mailboxes
:
info@domain.eu domain.eu/info/
Затем я использую команду postmap /etc/postfix/virtual_mailboxes
для воссоздания базы данных /etc/postfix/virtual_mailboxes.db
.
Таким образом, когда придет письмо на info@domain.eu
, оно будет сохранено внутри /var/mail/domain.eu/info
.