以下是我的bash脚本将写入nginx配置文件的一段内容。bash脚本将内容写入文件。文件内容需要bash变量。怎么做?
WEBAPP=example.com
APPFOLDER=abcapp
CONFFILENAME=abc.conf
read -r -d '' FILECONTENT <<'ENDFILECONTENT'
server {
listen 80;
client_max_body_size 2M;
server_name $WEBAPP;
root /var/virtual/stage.$WEBAPP/current/src/$APPFOLDER/webroot;
}
ENDFILECONTENT
echo "$FILECONTENT" > /etc/nginx/sites-available/$CONFFILENAME
代码成功地将内容写入/etc/nginx/sites-available/abc.conf
。
但是,我有两个bash变量$WEBAPP
和$APPFOLDER
。它们表现得与文件内部完全一样,而不是example.com
和abcapp
,这正是我的意图。
如何使脚本按预期工作?
http://www.tldp.org/LDP/abs/html/here-docs.html – ccpizza
帮你一个忙,忘了'read'的存在。这很少有必要而且经常被滥用。 – msw