Необходимо использовать declare -A
вместо declare -a
. Вы ясно используете ассоциативные массивы с аргументами произвольной строки как индексы, но declare -a
только для целочисленных индексных массивов. arg.txt
не оценивает к допустимому целому числу, следовательно Ваша ошибка.
Вы, кажется, используете bash
версия 3. К сожалению, ассоциативные массивы не доступны до версии 4. Я рекомендую отправить санированную версию оригинала deploy.sh
сценарий с конфиденциальной личной информацией удалил, таким образом, можно получить идеи от других людей об альтернативных подходах.
Только суммировать немного обмена в чате:
Самый легкий способ сделать некоторое действие по всем аргументам состоит в том, чтобы просто выполнить итерации по ним с a for
цикл:
for arg; do
scp login1@host1:"$arg" login2@host2:/dest/
done
Помните к двойной кавычке все экземпляры "$arg"
. Вы не должны помещать аргументы в массив сами, поскольку они уже существуют в массиве $@
, который является что for
использование по умолчанию, когда Вы не даете явное in list...
.
Можно подать произвольное сообщение к spamassassin путем передачи по каналу его к spamc -R
. Вы получите отчет о spamassassin о своем сообщении, которое похоже
1.5/5.0
1.5 : -0.0 NO_RELAYS Informational: message was not relayed via SMTP
0.1 MISSING_MID Missing Message-Id: header
-0.0 NO_RECEIVED Informational: message has no Received headers
1.4 MISSING_DATE Missing Date: header
Первая строка является счетом сообщения и пороговым счетом к сообщениям, которые будут считать спамом.
spamassassin -D -t < msg
? В любом случае нет никакого упоминания оblacklist_to
в отладочной информации. – Sardathrion - Reinstate Monica 21.06.2013, 15:04spamc
потому что это короче для ввода :) но Вам действительно нужноspamc
пакет установлен. – Flup 21.06.2013, 15:43blacklist_to
отладочная информация. господин – Sardathrion - Reinstate Monica 21.06.2013, 15:47