LinuxForum.Fans
Тема

Простейший вопрос.

Автор: across 7 сообщений 4119 просмотров
#364525

Есть скрипт с командой:

text
# doveadm expunge -u '$USER' mailbox Spam savedbefore 30d

Каким образом можно сделать так, чтобы в скрипте описать значения переменной $USER следующим образом:

text
USER=123,234,345,456 и т.д.

При выполнении скрипта значения переменной $USER должны подставляться по очереди.

Буду рад любой наводке! Спасибо!

#364528

Цикл for. Но если имена этих пользователей известны, по идее, можно просто перечислить их в фигурных скобках через запятую.

#364530

Имена известны. Собственно админ сам будет их перечислять через запятую или другой разделитель =). Про цикл for знаю, но как присвоить ему несколько значений не пойму что-то... Наверняка с использованием bash-массива? Или есть более простой способ?

#364532
text
for i in a b c; do ... done

Если имен очень много, можно поступить так:

text
while read i; do
...
done < namelist.txt

А в файле:

text
foo
bar
zet
...
and_other
#364536

Спасибо!!!

#364539

Совершенно не за что :)

#364588

Сделал так.

text
USER="quota@localhost support1@localhost support1@localhost1"

for i in $USER; do /opt/aurora/bin/doveadm expunge -u $i mailbox Inbox savedbefore 1d /opt/aurora/bin/doveadm quota recalc -u $i done

Удобно тем, что всё в одном файле.

Войдите или зарегистрируйтесь, чтобы ответить.