shell 引入子脚本,脚本字符串中换行与空格

# nginx 初始化,父脚本中的变量会自动传入引入的脚本中
. init/nginx.sh

子脚本内容

#!/bin/bash

# 生成nginx配置
# cur_dir=$(pwd)
# cur_dir=$(dirname $(pwd))
# input_name=demo
# input_domain=jiqing.demo.com
nginx_str="server\n
    {\n
    \t    listen 80;\n
    \t    #listen [::]:80 default_server ipv6only=on;\n
    \t    server_name ${input_domain};\n
    \t    index index.html index.htm admin.php;\n
    \t    root ${cur_dir}/web-admin/Public;\n
    \t    #error_page   404   /404.html;\n
    \t    include enable-php-pathinfo.conf;\n

    \t    location /nginx_status\n
    \t    {\n
    \t        \tstub_status on;\n
    \t        \taccess_log   off;\n
    \t    }\n

    \t    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$\n
    \t    {\n
    \t        \texpires      30d;\n
    \t    }\n

    \t    location ~ .*\.(js|css)?$\n
    \t    {\n
    \t        \texpires      12h;\n
    \t    }\n

    \t    location ~ /\.\n
    \t    {\n
    \t        \tdeny all;\n
    \t    }\n

    \t    access_log  /home/wwwlogs/access.log;\n
    }"

nginx_conf_file="/usr/local/nginx/conf/vhost/$input_name.conf"
if [ ! -f $nginx_conf_file ]; then
    touch $nginx_conf_file
fi

/bin/echo -e $nginx_str >$nginx_conf_file

# 重启nginx
nginx -s reload

相关推荐