我有这个脚本:
# run this command to create production version of project.html
/<!-- BEGIN PRODUCTION|END PRODUCTION -->/ { next }
/<!-- (BEGIN|END) DEVELOPMENT -->/ { skip = !skip; next }
!skip
长话短说,当我为生产编译应用程序时,它会替换 HTML 文件中的文本。它会删除我的BEGIN DEVELOPMENT
评论和END DEVELOPMENT
评论之间的所有代码,并取消对BEGIN PRODUCTION
代码的注释。下面是一个将被替换的文本示例:
<!-- BEGIN DEVELOPMENT -->
<link rel="stylesheet" href="/style.css" type="text/css" media="screen">
<script type="text/javascript" src="/script.js"></script>
<!-- END DEVELOPMENT -->
<!-- BEGIN PRODUCTION
<link rel="stylesheet" href="/style.min.css" type="text/css" media="all" />
<script type="text/javascript" src="/script.min.js"></script>
END PRODUCTION -->
这很好用。但我需要在 PHP 文件中做同样的事情,我需要使用以下语法:
/* BEGIN DEVELOPMENT */
{PHP CODE}
/* END DEVELOPMENT */
/* BEGIN PRODUCTION
{PHP CODE}
END PRODUCTION */
它遵循相同的概念,但我无法让 shell 脚本正常工作。有人可以告诉我为什么这是不正确的吗?:
# run this command to create production version of project.html
/\/* BEGIN PRODUCTION|END PRODUCTION *\// { next }
/\/* (BEGIN|END) DEVELOPMENT *\// { skip = !skip; next }
!skip
谢谢你的帮助!
根据下面的评论,这是正确的语法并且它有效:
# run this command to create production version of project.html
/\/\* BEGIN PRODUCTION|END PRODUCTION \*\// { next }
/\/\* (BEGIN|END) DEVELOPMENT \*\// { skip = !skip; next }
!skip