Para modificar os arquivos de configuração, sed
é mais confiável do que o bash:
sed -i 's|^Alias /phppgadmin|Alias /!phppgadmin|' /etc/phppgadmin/apache.conf
Você está perdendo novas linhas porque passou $phppgadmin
para echo
unquoted, o que significa que o shell divide o conteúdo da variável no espaço em branco. Seu script original teria funcionado se você usou "$phppgadmin"
em seu lugar.
Além disso:
-
Não use
'cat'
, use'<file'
ou$(<file)
. -
${phppgadmin//$/'\n'}
destruirá qualquer real$
do arquivo de configuração original.
Script reconfigurado, ainda não é tão confiável quanto o comando sed
acima:
conf=$(< /etc/phppgadmin/apache.conf)
conf=${conf/Alias \/phppgadmin/Alias \/!phppgadmin}
echo "$conf" > /etc/phppgadmin/apache.conf