我正在致力于自动化 WordPress 安装。在编辑 wp-config.php 文件时,我需要put your unique phrase here
用 WordPress.org 服务器生成的 Salt 替换包含的 8 行。
所以,我使用了来自的最佳答案这个踏板它告诉我运行这个脚本:
#!/bin/sh
SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)
STRING='put your unique phrase here'
printf '%s\n' "g/$STRING/d" a "$SALT" . w | ed -s wp-config.php
这工作得很好,因为它用适当的盐替换了所需的行。但是,它还会^M
在 wp-config.php 中每个字符串的末尾附加一个 ,新添加的字符串除外。
现在看起来像这样:
*/^M
^M
define('AUTH_KEY', '|%)Y1>vzXGRbE?`FFZX3Mq|ur?tN/,R&%@)juSc?f@bNPYm~P=aF&Fl?!HGF4V}a');
define('NONCE_SALT', '6;KHO6=[<daU7t|]dA`Ta-h7.2B@3Sa`daIinz/6!O=GQWE(@r(<3L+X,/:[du%Q');
/**
**/^M
^M
/**^M
* WordPress Database Table prefix.^M
我对 ed(1) 不太了解,所以任何帮助将不胜感激。
答案1
您在问题中提到的一系列命令不会将回车符(事物^M
)添加到您的文本文件中。
但是,如果文件在每行末尾已经有回车符,所有 DOS 文本文件都有,那么它会向文件添加非 DOS 行,这意味着文本文件在编辑后有一些行一些是 Unix 文本行,一些是 DOS 文本行。无论您使用什么编辑器查看该文件,都必须尝试弄清楚如何处理该文件,并决定将其显示为 Unix 文本文件,并将回车符显示为^M
(vim
例如,将执行此操作)。
dos2unix
解决方案是在您的文件上运行wp-config.php
。它将能够处理混合类型的行并将整个文件转换为 Unix 文本文件。
另请注意,ed
编辑脚本不会干净地put your unique phrase here
替换文档中的字符串。鉴于该文件
000
AAA
put your unique phrase here
BBB
XXX
...命令序列将生成
000
AAA
BBB
define('AUTH_KEY',...
...
XXX
BBB
(注意前后线的位置)。要解决此问题,以便在上面的文本define
之前添加行,请将命令更改为命令,即BBB
a
i
在当前行之前插入而不是追加到后面(“当前行”将是该BBB
行,因为该行位于g//d
命令已修改的行之后)。