比较来自世界各地的卖家的域名和 IT 服务价格

如何防止失败 sed 结合 apg?

我正在编写一个自动安装的脚本 WordPress 对我来说,让我更轻松地让我更轻松,因为我必须不断地部署安装 WordPress.

但是,我试图让它成为我从未与他互动,它需要睡眠。

我使用为数据库和其他东西生成密码 apg, 然后使用 sed 用正确的密码替换字符串。

它看起来像这样:

DOMAIN="$2"
DB_NAME_USER="$(echo $DOMAIN | sed -e 's/\.//g')"
DB_PASSWORD="$(apg -a 1 -n 1 -m 64 -d -c cl_seed -E \_\"\'\`\/\\\=)"

sed -i "s/database_name_here/$DB_NAME_USER/g" /srv/"$DOMAIN"/wp-config.php
sed -i "s/username_here/$DB_NAME_USER/g" /srv/"$DOMAIN"/wp-config.php
sed -i "s/password_here/$DB_PASSWORD/g" /srv/"$DOMAIN"/wp-config.php

替换数据库和用户名正常工作,但在更换密码时,未执行替换10倍的六个零件

我得到这样的东西:

define ('DB_PASSWORD', 'Ymb {X-dT ~ l5Agg9q561A ^? n

password_here

D; $ U, s> mu *: f7 | BK4? OM # OH> cHgsI9GndW @ ~ SkBQ ');

专注于问题。 而不是删除部分 «password_here» 并用实际密码替换它,似乎将在密码中间组合在一起。

我认为这可能是一个创造的符号 apg, 谁雇用了S. sed, 但我删除了很多密码使用 -E, 还是很多。

与其他替代品发生同样的事情,始终涉及 apg 和 sed. 取代这样的东西

_PASSWORD_HERE_

不时导致同样的问题。

有没有办法解决此问题,或者我需要继续尝试找到导致问题的符号,然后将它们添加到异常列表中 apg? 或者也许告诉我 sed 替换整行,不仅仅是我想要的字符串?

先感谢您!
已邀请:

詹大官人

赞同来自:

你需要避免

\

,

/



&

输入中的符号,否则 sed 表现出来。 有点

DB_PASSWORD=$(echo "$DB_PASSWORD" | sed -e 's/[\/&]/\\&/g')
sed -i "s/password_here/$DB_PASSWORD/g" /srv/"$DOMAIN"/wp-config.php

必须制造您的业务。

要回复问题请先登录注册