Bash脚本-删除$


Bash script - unwanted removal of $

我正在尝试使用bash: ./conf.sh dbu2 dbn2 pass2为我的网站生成一个配置文件

我的bash脚本:

#!/bin/bash
dbuser=$1
dbname=$2
dppass=$3
cat <<EOF > /var/www/mydomain.com/public_html/config.php
<?php
$DB='mysql';
$DBhost='localhost';
$DBname='$2';
$DBusr='$1';
$DBpwd='$3';
(...)
?>
EOF

(/var/www/mydomain.com/public_html/config.php):

<?php
='mysql';
='localhost';
='dbn2';
='dbu2';
='pass2';
应:

<?php
$DB='mysql';
$DBhost='localhost';
$DBname='dbn2';
$DBusr='dbu2';
$DBpwd='pass2';
(...)
?>

建议吗?

谢谢大家

您需要转义您想要保留的变量名中的$(为了防止变量展开):

cat <<EOF > /var/www/mydomain.com/public_html/config.php
<?php
'$DB='mysql';
'$DBhost='localhost';
'$DBname='$2';
'$DBusr='$1';
'$DBpwd='$3';
(...)
?>
EOF