Это все различные формы расширения параметров с альтернативами:
$ {var: -val}
заменяется на val
, если var
не задано или равно нулю, $ {var}
в противном случае (поэтому val
является «значением по умолчанию»); $ {var: = val}
сначала присваивает val
var
, если var
не задано или равно нулю, а затем (во всех случаях) заменяется на $ {var}
; $ {var: + val}
заменяется на ничего , если var
не задано или равно нулю, val
иначе. Отсутствие :
отбрасывает «или нулевую» часть всех этих определений.
Все это описано на странице руководства bash (1)
и в POSIX .
Некоторые примеры могут помочь:
unset a
echo "${a:-default}"
производит default
, как и echo "$ {a-default}"
.
a=
echo "${a:-default}"
снова производит default
, но echo "$ {a-default}"
выводит пустую строку.
a=test
echo "${a:-default}"
производит тест
, как и echo "$ {a-default}"
.
unset a
echo "${a:=default}"
производит по умолчанию
, а
теперь по умолчанию
(как подтверждено echo "$ {a}"
).
Форма +
может показаться странной, но она полезна при построении переменных в несколько этапов:
PATH="${PATH}${PATH:+:}/blah/bin"
добавит :
перед / blah / bin
только если PATH
не пуст, что позволяет избежать пути, начинающегося с :
.
Проблема в том, что вы устанавливаете оценку HTML _MESSAGE в плагинеShortcircuit . Но этот плагин по умолчанию отключен. Попробуйте поставить счет в последней строке файла, после инструкции Shortcircuitendif
:
# Some shortcircuiting, if the plugin is enabled
#
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
# [...]
endif # Mail::SpamAssassin::Plugin::Shortcircuit
score HTML_MESSAGE 2.0
Если вы хотите включить плагин Shortcuit , вам необходимо раскомментировать его в файле /etc/spamassassin/v320.pre :
# Shortcircuit - stop evaluation early if high-accuracy rules fire
#
loadplugin Mail::SpamAssassin::Plugin::Shortcircuit
В README для SpamAssassin рассказывается о запутанном способе, с помощью которого SpamAssassin считывает свои собственные файлы данных.
Начните читать со строки 95: http://svn.apache.org/viewvc/spamassassin/branches/3.4/README?view=markup#l95
Судя по этому, SpamAssassin, по крайней мере, в оригинальном официальном источнике, читается не из
/etc/spamassassin/
, а из
/etc/mail/spamassassin/
. Попробуйте переместить файл туда! :D
В моем файле по умолчанию local.cf
я прочитал:
# These values can be overridden by editing ~/.spamassassin/user_prefs.cf
# (see spamassassin(1) for details)
Есть ли у вас пользовательский файл конфигурации spamassassin (~/.spamassassin/user_prefs.см)?
Взгляните также на этот perldoc:
perldoc Mail::SpamAssassin::Conf
В разделе ПОЛЬЗОВАТЕЛЬСКИЕ НАСТРОЙКИ я прочитал:
ПОЛЬЗОВАТЕЛЬСКИЕ НАСТРОЙКИ Следующие параметры можно использовать как для всего сайта ("local.cf"), так и для пользовательские ("user_prefs") файлы конфигурации для настройки того, как SpamAssassin обрабатывает входящие сообщения электронной почты.