Скрипт оболочки для добавления новых строк в etc / hosts и Apache httpd-vhosts.conf в Mac OSX 10.6 - PullRequest
4 голосов
/ 06 мая 2011

Я использую Mac OSX 10.6 и занимаюсь веб-разработкой.Я немного знаю о написании сценариев оболочки, но пока не очень разбираюсь в них.

Я хотел бы написать сценарий оболочки, который будет просто запрашивать псевдоним локального сайта икаталог документа, и затем он добавит новый псевдоним на хосты с чем-то вроде «127.0.0.1 mysite.local» в новой строке в нижней части etc / hosts.

Затем скрипт добавит httpd- ApacheФайл vhosts.conf с чем-то вроде этого:

<VirtualHost *:80>
    DocumentRoot "/Repositories/myproject/mysite.com/trunk/htdocs"
    ServerName mysite.local
    ServerAlias mysite.localhost
</VirtualHost>

Затем он наконец запустит команду для перезапуска моего сервера Apache.Теперь я знаю команду терминала для перезапуска Apache, это достаточно просто.Я также знаю, как читать в имени сайта и пути от пользователя, запустившего скрипт.Например:

#!/bin/bash
read -p "New local site name: " site
read -p "Site path (ex:/Repositories/myproject/mysite.com/trunk/htdocs): " sitepath

Что я не знаю, как сделать, это добавить текст в файл из терминала.

Есть мысли или полезные идеи?

Спасибо, Патрик

1 Ответ

9 голосов
/ 07 мая 2011

Не проверено, но должно работать:

#!/bin/bash
read -p "New local site name: " SITE
read -p "Site path (ex:/Repositories/myproject/mysite.com/trunk/htdocs): " SITEPATH

#/etc/hosts
cp /etc/hosts /etc/hosts.original
echo -e "127.0.0.1\t${SITE}.local" >> /etc/hosts

#httpd-vhosts.conf
VHOSTSFILE="/etc/apache2/httpd-vhosts.conf"
cp $VHOSTSFILE ${VHOSTSFILE}.original
echo "<VirtualHost *:80>" >> $VHOSTSFILE
echo -e "\tDocumentRoot \"${SITEPATH}\"" >> $VHOSTSFILE
echo -e "\tServerName ${SITE}.local" >> $VHOSTSFILE
echo -e "\tServerAlias ${SITE}.localhost" >> $VHOSTSFILE
echo '</VirtualHost>' >> $VHOSTSFILE

#restart apache

>> перенаправляет вывод в указанный файл, добавляя содержимое в файл.Я также использую -e, чтобы разрешить расширение \t до символа табуляции.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...