Я бы не стал использовать здесь-документы таким образом, потому что довольно сложно увидеть, что происходит.
Я бы предпочел использовать функции оболочки.
При использовании Bash это может выглядеть примерно так:
function install_phpadmin
{
# Installs phpadmin and restarts apache.
# ignore HUP
trap '' HUP
apt-get install phpadmin -y
phpenmod mcrypt mbstring
if ! grep -q -Fx "Include /etc/phpmyadmin/apache.conf" /etc/apache2/apache2.conf
then
echo "Include /etc/phpmyadmin/apache.conf" >>/etc/apache2/apache2.conf
fi
service apache2 restart
# don't ignore HUP
trap - HUP
}
function uninstall_phpadmin
{
# Uninstalls phpadmin and restarts apache.
# ignore HUP
trap '' HUP
service apache2 stop
phpdismod mbcrypt mbstring
apt-get purge phpadmin -y
if grep -q -Fx "Include /etc/phpmyadmin/apache.conf" /etc/apache2/apache2.conf
then
sed -e '\#^Include /etc/phpmyadmin/apache.conf$#d' \
/etc/apache2/apache2.conf >/etc/apache2/apache2.conf.tmp &&
mv /etc/apache2/apache2.conf.tmp /etc/apache2/apache2.conf
fi
service apache2 start
# don't ignore HUP
trap - HUP
}
install_phpadmin && sleep 60 && uninstall_phpadmin &
Поскольку я нахожусь в системе без apt-get
, Apache или PHP, я не тестировал код, но думаю, что я понял это правильно.
Я знаю, что grep
во второй функции не нужен, но я включил его для симметрии с первой функцией.