Ответ жабр был почти там, но по некоторым причинам я должен был передать по каналу через formail
дважды. Кроме того, я должен был на самом деле отправить почту после перезаписи заголовков. Вот то, что я сделал, чтобы заставить эту целую вещь работать:
Я создал новый файл ~/bin/resend-support
содержа:
#!/bin/bash
/usr/bin/formail -R To: From: | \
/usr/bin/formail -U From: -I Cc: -I 'To: support@mydomain.com' | \
/usr/sbin/sendmail -oi -t
Я сделал исполняемый файл файла (chmod +x ~/bin/resend-support
)
resend-support@mydomain.com
который переданный по каналу к ~/bin/resend-support
(использующий "Канал для программы" под "Усовершенствованным")Теперь, когда я посылаю электронное письмо someone@example.com
и CC resend-support@mydomain.com
, это передается по каналу к ~/bin/resend-support
который снова посылает электронную почту support@mydomain.com
от someone@example.com
Вы ищете это?
$ cat indirection.bash
#!/bin/bash -x
var1=www
var2=www2
var3=www3
var4=www4
for i in 1 2 3 4; do
s="var${i}"
echo "${!s}"
done
$ ./indirection.bash
www
www2
www3
www4
Вы могли использовать массив:
#/bin/bash -x
declare -a vars=(
www
www2
www3
www4
)
for var in "${vars[@]}"; do
echo "$var"
done
Или выполните итерации с индексом:
for i in "${!vars[@]}"; do
echo "${vars[$i]}"
done
"${vars[@]}"
, иначе для цикла повредится на любом пробеле в значениях элемента массива. например. var=("elem 1" "elem 2")
. Только опустите двойные кавычки, если Вы хотите это (обычно неожиданный) поведение. ВОЗВРАТ
– glenn jackman
31.07.2013, 13:59
Обычно оболочка разворачивает переменную только однажды. Можно использовать косвенный, расширяются или просят окружать для расширения его еще раз, например:
eval "val=\$var$i"; echo "$val";
вместо просто:
echo "\$var$i"
Этот метод является очень портативным, но использует зло eval
.
Используя косвенное расширение как показано в других ответах (см. Расширение Параметра в ударе человека), ${!VAR_NAME}
хорошее решение, когда мобильность не необходима, и Вам разрешают использовать расширения Bash.
Используйте ассоциативный массив. Нет никакого серьезного основания генерировать имена переменной как это.
!
в хижине!? – sasha.sochka 01.08.2013, 23:43