Tente isso:
sed -i "s/\$cfg\[.blowfish_secret.\]\s*=.*/$replace/" file
Se você colocar aspas simples em torno das variáveis, as variáveis não poderão ser expandidas
Quando você baixa e extrai o phpMyAdmin mais recente, ele vem com um arquivo config.sample.inc.php
. Gostaria de definir um valor blowfish_secret
aleatório nessa linha:
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Então, o que tentei até agora é:
#!/bin/bash
cp config.sample.inc.php config.inc.php;
search="\$cfg['blowfish_secret'] = '';";
replace="\$cfg['blowfish_secret'] = '1234';";
sed -i -e 's/$search/$replace/g' config.inc.php;
# debug
echo $search;
echo $replace;
cat config.inc.php;
Quando eu testei esse script, o arquivo config.inc.php
copiado não parece ter sido atualizado. Alguma idéia por quê? o search
& Os campos replace
estão sendo definidos corretamente: