Обновление скрипта соляной оболочки

У меня есть сценарий

#!/bin/bash
chars=( {a..z} {A..Z} {0..9} \, \; \. \: \- \_ \# \* \+ \~ \! \§ \$ \% \& \( \) \= \? \{ \[ \] \} \| \> \< )

function rand_string {
local c=$1 ret=
while((c--)); do
ret+=${chars[$((RANDOM%${#chars[@]}))]}
done
printf '%s\n' "$ret"}
for i in {1..8}
do
export salt$i=$(rand_string 64)
done

echo $salt1
echo $salt2

sed -i 's/put your unique phrase here/'$salt1'/g' /var/www/testsite/wp-config.php
sed -i 's/put your unique phrase here/'$salt2'/g' /var/www/testsite/wp-config.php

Вывод, который я вижу на моем экране:

[root@server testsite]# ./salt.sh
$,E5:2nB$p>s;2Y)h>}VU2V5Lj2UC38,yY+0?{LM;rt;Xx%B:#%9z2oc-BSE;1%Z
~#&2#p#hZkT+)p83ZD%7=noy?§xbx%3iP4*|z<-haHXVIk<[IR0>v%.r*+X5=kNl

Однако мой wp-config.php содержит

define('AUTH_KEY',         '$,E5:2nB$p>s;2Y)h>}VU2V5Lj2UC38,yY+0?{LM;rt;Xx%B:#%9z2oc-BSE;1%Z');
define('SECURE_AUTH_KEY',  '$,E5:2nB$p>s;2Y)h>}VU2V5Lj2UC38,yY+0?{LM;rt;Xx%B:#%9z2oc-BSE;1%Z');

Я также попытался поместить оператор SED в мой цикл, однако не смог понять, как вызвать переменную.

sed -i 's/put your unique phrase here/'$salt$i'/g' /var/www/testsite/wp-config.php

wp-config.php содержит

define('AUTH_KEY',         '1');
define('SECURE_AUTH_KEY',  '1');

Как я могу это исправить.

То, что я хотел бы видеть,

define('AUTH_KEY',         '$,E5:2nB$p>s;2Y)h>}VU2V5Lj2UC38,yY+0?{LM;rt;Xx%B:#%9z2oc-BSE;1%Z');
define('SECURE_AUTH_KEY',  '~#&2#p#hZkT+)p83ZD%7=noy?§xbx%3iP4*|z<-haHXVIk<[IR0>v%.r*+X5=kNl');

2

Решение

put your unique phrase here в обеих строках. Первый сед заменяет оба экземпляра.

Примерно так должно работать:

sed -i -e '/put your unique phrase here/{s/put your unique phrase here/'"$salt1"'/;N;s/put your unique phrase here/'$salt2'/}' wp-config.php

Запускайте команды только в той строке, которая соответствует этой строке. Когда это соответствует, выполните первую замену, прочитайте следующую строку в пространство образца и выполните вторую замену.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]