【发布时间】:2011-04-12 03:13:02
【问题描述】:
我想要一个可以在任何文件上运行的命令行函数来将include("myinc.inc"); PHP 语句更改为include 'myfile.inc'; 我已经开始将以下内容添加到我的 ~/.bashrc 文件:
function makestandard() {
perl -p -i -e 's/include\("([\w\.]+)"\)/include '$1'/g' $*
}
我source ~/.bashrc;并在命令行运行命令如下:
$ makestandard myfile.php
我修改了 myfile.php,但不是捕获包含的文件名,而是包含的文件名被损坏为当前文件的名称。作为一个不知情的猜测,我认为 bash $1 变量正在干扰 $1 perl regexp 变量。
我该如何解决这个问题?
背景信息(无需阅读):我们已经开始使用PHP_CodeSniffer (phpcs) 来嗅探 PHP 代码并报告任何不好的“气味”。不幸的是,phpcs 不修复非标准代码,它只报告它。因此,我想制作一个脚本来修复我们 PHP 代码中一些简单且常见的非标准元素。我打算用一堆perl pie 填充我的makestandard bash 函数。
Shell 环境:Ubuntu 10.04 中开箱即用的任何东西。
【问题讨论】: