Como eu poderia encurtar ainda mais o script a seguir, cujo objetivo é criar um banco de dados && instância do WordPress e, em seguida, alterar as permissões de acordo com o domínio fornecido e reiniciar o servidor?
${domain}
representa o domínio que passo como argumento na execução do script.
${drt}
significa raiz do documento ( /var/www/html
).
#!/bin/sh
domain="$1"
echo "What's your DB root password?" && read -s dbrp
echo "What's your DB user password?" && read -s dbup
echo "CREATE USER "${domain}"@"localhost" IDENTIFIED BY \"${dbup}\";" | mysql -u root -p"${dbrp}"
echo "CREATE DATABASE ${domain};" | mysql -u root -p"${dbrp}"
echo "GRANT ALL PRIVILEGES ON ${domain}.* TO ${domain}@localhost;" | mysql -u root -p"${dbrp}"
cd ${drt}
curl -L http://wordpress.org/latest.tar.gz | tar -zxv -C ${domain}/
cp ${domain}/wp-config-sample.php ${domain}/wp-config.php
sed -i "s/database_name_here/${domain}"/g ${domain}/wp-config.php
sed -i "s/username_here/${domain}/g" ${domain}/wp-config.php
sed -i "s/password_here/${dbup}/g" ${domain}/wp-config.php
chown -R ${domain}:${domain} ${domain}/* && chmod -R a-x,a=rX,u+w ${domain}/* && systemctl restart nginx.service
Meu objetivo é encurtá-lo em 2 a 3 linhas, mas acho que provavelmente é impossível.
Eu pensei sobre:
1) Removendo a cd ${drt}
sintaxe e começando a adicionar ${drt}
onde eu precisar.
2) Una os 2 primeiros seds desta forma:
sed -i "s/_name_here/${domain}"/g ${domain}/wp-config.php
Gostaria de saber se há algo mais que possa ser encurtado (unido) que você reconheça.
4 linhas em uma:
para (EDITAR regex fixo após o comentário)
Então, novamente, não sei se seu arquivo de configuração de amostra possui outras strings que correspondem a "name_here". Você pode ter várias substituições de sed separadas por
;
uma linha.Solicitar senhas é uma ótima medida de segurança, mas usá-las na linha de comando mais tarde acaba com isso ... então você também pode especificar as senhas na linha de comando, no ambiente do processo.