用bash将变量放入sed

时间:2013-12-26 17:14:08

标签: bash variables sed double-quotes quote

我尝试在 bash sed 中使用变量

我有这段代码:

read -p "Repertoire destination: " REP
echo $REP

sed -i 's/\$app\[\"bundle.root\"\] = \"\/var\/www\/\"\;/\$app\[\"bundle.root\"] = \"'$REP'\"\;/'  /home/martialp/Documents/default.php

echo "Modification terminé"

我使用简单的引用,如'$ REP',但我有这个错误:

sed: -e expression n°1, caractère 80: option inconnue pour `s'

1 个答案:

答案 0 :(得分:1)

您的问题可能是$REP包含斜杠,但您使用/来分隔正则表达式。最简单的解决方法是使用其他一些字符来分隔正则表达式,可能是%

sed -i 's%\$app\[\"bundle.root\"\] = \"\/var\/www\/\"\;%\$app\[\"bundle.root\"] = \"'$REP'\"\;%'  /home/martialp/Documents/default.php

您可以使用命令中未出现的任何字符;例如, Control-A 效果很好,不太可能出现在$REP中。