我尝试在 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'
答案 0 :(得分:1)
您的问题可能是$REP
包含斜杠,但您使用/
来分隔正则表达式。最简单的解决方法是使用其他一些字符来分隔正则表达式,可能是%
:
sed -i 's%\$app\[\"bundle.root\"\] = \"\/var\/www\/\"\;%\$app\[\"bundle.root\"] = \"'$REP'\"\;%' /home/martialp/Documents/default.php
您可以使用命令中未出现的任何字符;例如, Control-A 效果很好,不太可能出现在$REP
中。