BASH-选择变量替换
我需要替换sippet中的一个变量,但我必须在apache虚拟主机中保持“$1”不变,例如:BASH-选择变量替换,bash,Bash,我需要替换sippet中的一个变量,但我必须在apache虚拟主机中保持“$1”不变,例如: SNIPPET=$(cat <<- 'EOF' <VirtualHost *:80> ServerName ${HOSTNAME} DocumentRoot /usr/local/apache2/htdocs/${HOSTNAME} <Directory /usr/local/apache2/htdocs/${HOSTNAME}>
SNIPPET=$(cat <<- 'EOF'
<VirtualHost *:80>
ServerName ${HOSTNAME}
DocumentRoot /usr/local/apache2/htdocs/${HOSTNAME}
<Directory /usr/local/apache2/htdocs/${HOSTNAME}>
Options -Indexes +FollowSymLinks +MultiViews
Require all granted
</Directory>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php56:9000/usr/local/apache2/htdocs/${HOSTNAME}/$1
</VirtualHost>
EOF
)
SNIPPET=$(cat此处不需要使用cat
;字符串可以包含嵌入的换行符
SNIPPET="\
<VirtualHost *:80>
ServerName ${HOSTNAME}
DocumentRoot /usr/local/apache2/htdocs/${HOSTNAME}
<Directory /usr/local/apache2/htdocs/${HOSTNAME}>
Options -Indexes +FollowSymLinks +MultiViews
Require all granted
</Directory>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php56:9000/usr/local/apache2/htdocs/${HOSTNAME}/\$1
</VirtualHost>"
SNIPPET=”\
服务器名${HOSTNAME}
DocumentRoot/usr/local/apache2/htdocs/${HOSTNAME}
选项-索引+FollowSymLinks+多视图
要求所有授权
ProxyPassMatch^/(.\.php(/.*)$fcgi://php56:9000/usr/local/apache2/htdocs/${HOSTNAME}/\$1
"
在您的情况下,如果至少需要一个参数替换,则不能引用here doc分隔符,因为这会将整个here doc视为一个单引号字符串。删除引号后,整个here doc将被视为一个双引号字符串,因此您需要转义任何可能受参数扩展影响的内容。使用反斜杠将文本设置为$
:${HOSTNAME}/\$1
很好,很好!抱歉,我是新来的。。。。