缩短数据库和 WordPress 实例创建脚本

缩短数据库和 WordPress 实例创建脚本

我如何进一步缩短以下脚本,其目的是创建数据库&& WordPress 实例,然后更改每个给定域的权限并重新启动服务器?

${domain}代表我在脚本执行中作为参数传递的域。 ${drt}代表文档根 ( /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

我的目标是将其缩短 2-3 行,但我认为这可能是不可能的。

我想:

1)删除cd ${drt}语法并开始${drt}在我需要的地方添加。

2)以这种方式合并前 2 个 sed:

sed -i "s/_name_here/${domain}"/g ${domain}/wp-config.php

我想知道是否还有您认识的其他可以缩短(联合)的内容。

答案1

4行合而为一:

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

至(编辑修正正则表达式以下评论)

sed "s/[a-z_]*name_here/${domain}/g;s/password_here/${dbup}/g" ${domain}/wp-config-sample.php > ${domain}/wp-config.php

再说一遍,我不知道您的示例配置文件是否有其他与“name_here”匹配的字符串。您可以;在一行中进行多个 sed 替换。

提示输入密码是一项很好的安全措施,但是稍后在命令行上使用它们会破坏这一点......因此您也可能在进程环境中在命令行上指定密码。

dbrp=mySillySecret dbup=mySecret myShortenedWordpressScript.sh example.com

相关内容