Как говорили другие, вам нужно будет настроить локальный почтовый сервер (sendmail, postfix, или что вы предпочитаете).
Я предполагаю, что вы делаете это из своего дома и получаете IP-адрес, который меняется так часто. Если это так, то вы обнаружите другие проблемы с отправкой электронной почты. Множество серверов просто откажут вам из-за вашего IP-адреса (см. "Спамхаус" или другие).
Чтобы обойти это, вам понадобится ретрансляция (или, в идеале, статический IP* и DNS). Ваш провайдер может предоставить вам ретранслятор (возможно, вам понадобится спросить), после чего вы просто добавите следующие директивы
Если вы используете sendmail:
define(`SMART_HOST', `smtp.your.provider')dnl
Если вы используете постфикс:
relayhost = smtp.your.provider
Где smtp.your.provider
будет вашим ретрансляционным хостом (это может быть и IP-адрес).
Вот несколько руководств для sendmail и postfix.
Я использую и то, и другое; однако, я думаю, что постфикс должен быть проще и безопаснее, но хорошие практики это то, что действительно имеет значение. На Redhat-подобных системах (Fedora, CentOS, RHEL, Oracle и т.д.) Sendmail, кажется, используется по умолчанию, в то время как другие используют Postfix.
*статический IP не нужен, но делает жизнь намного проще.
Когда Вы пишете:
alias thm="cd $SET_DIR/sites/all/themes/"
Вы расширяете значение SET_DIR
в момент, когда Вы определяете псевдоним. Это означает, что вы получаете одно и то же значение каждый раз при запуске псевдонима, даже если вы изменили значение переменной между ними. Если вы вернете псевдоним в обратном порядке $
, то переменная будет разыменована, когда вы используете псевдоним вместо:
$ foo=hello
$ alias test="echo \$foo"
$ test
hello
$ foo=world
$ test
world
Так что если вы определите псевдонимы таким образом, то вам никогда не нужно будет переопределять их при изменении SET_DIR
. Вы также можете однозначно процитировать определение псевдонима.
Для вашего файла данных, Bash 4 и выше поддерживает ассоциативные массивы , что позволит вам определить ваши данные следующим образом:
declare -A theme site # This makes these variables associative arrays
add_site() {
local shortcut=$1
theme[$shortcut]=$2
site[$shortcut]=$3
}
add_site x1 example1.com alpha
add_site x2 example2.com beta
Затем вы можете получить доступ к значениям, например, с помощью ${тема[x1]}
. Ваши псевдонимы могут иметь форму:
alias thm="cd /var/www/\${site[\$CURRENT]}/sites/all/themes/\${themes[\$CURRENT]}"
Ваша функция sroot
будет просто устанавливать CURRENT
на нужный вам ключ. Псевдоним всегда приведет вас к нужному каталогу в пределах текущего сайта.
Существуют и другие подходы к определению массивов в частности, но это даст вам общую идею.