用双引号和$

时间:2012-11-01 18:56:08

标签: ssh sed double-quotes

我有一个bash脚本,用于在我的服务器上设置一个简单的PHP脚本。我对如何使用脚本正确更改sed变量感到困惑。这是我尝试过的:

echo "Enter Portal Password:"
read PORTPASS;
sed -i 's/$ppass =".*"/$ppass ="$PORTPASS"/' includes/config.php

以上内容更改了配置文件中的变量,但它只将其更改为$PORTPASS它不会将其更改为我在脚本中输入的内容。

我也试过了,它确实正确地更改了$PORTPASS,但它删除了文件中变量周围的" "

sed -i 's/$ppass ='".*"'/$ppass ='"$PORTPASS"';/' includes/config.php

以下是我在conf.php文件中尝试更改的内容:$ppass ="password";

1 个答案:

答案 0 :(得分:0)

尝试:

sed -i "s/\$ppass =\".*\"/\$ppass =\"$PORTPASS\"/" includes/config.php

你必须在命令周围使用双引号("),以便shell在将它传递给sed之前评估$PORTPASS,这样你就必须“转义”所有的双引号命令。