Howdie,
У меня есть скрипт bash, который устанавливает phppgadmin и заменяет псевдоним phppgadmin на!PhpPgAdmin.
Это мой сценарий:
#installing phppgadmin and tell my Apache conf file to include it
apt-get install --force-yes phppgadmin && echo 'Include /etc/phppgadmin/apache.conf' >> /my/conf/apache2/apache2.conf
# the string manipulation
phppgadmin=`cat /etc/phppgadmin/apache.conf`
phppgadmin=${phppgadmin/Alias \/phppgadmin/Alias \/!phppgadmin}
#saving result
echo -e $phppgadmin > /etc/phppgadmin/apache.conf
Это работает хорошо, за исключением случаев, когда разрывы строк теряются по пути, поэтому, конечно, Apache жалуется, что файл не читается. Я пытался с кошкой -E, безуспешно.
Любая идея?
РЕДАКТИРОВАТЬ: Хорошо, кажется, что я не понял, что делает cat -E
. На самом деле он заменяет разрывы строк знаком доллара, так что теперь я начал работать:
phppgadmin=`cat -E /etc/phppgadmin/apache.conf`
phppgadmin=${phppgadmin/Alias \/phppgadmin/Alias \/!phppgadmin}
phppgadmin=${phppgadmin//$/'\n'}
echo -e $phppgadmin > /etc/phppgadmin/apache.conf
Итак, проблема решена!