我有几个像这样的异常类(是 PHP,但现在没关系):
class FileNotFoundException extends OtherException {
const DEFAULT_FILE_NOT_FOUND_ERROR_CODE = 159;
public function __construct($code=self::DEFAULT_FILE_NOT_FOUND_ERROR_CODE) {
parent::__construct($code);
}
}
问题
我需要从所有文件中获取错误代码以将它们存储到一个数组中(索引是错误代码,值是常量名称)以便按顺序打印它。
提示
- 所有文件都是
.php
文件 - 不断的错误代码总是像
const DEFAULT_[A-Z_]_ERROR_CODE = [0-9]+;
- 我试图存储在这样的数组中
array[159]="DEFAULT_FILE_NOT_FOUND_ERROR_CODE";
我做了什么
我试图做的——用我的一点 bashscripting 知识——是一个解析所有这些 php 异常文件并只获取常量的脚本DEFAULT_[...]_ERROR_CODE = "number";
这是我的script.sh试图得到它:
#! /bin/bash
sed -n "s/const \(DEFAULT[A-Z_]*\) = \([0-9]*\);/$array[\2]=\1;/p" $1
如果我这样做:
script.sh < FileNotFoundException.php
它输出[159]=DEFAULT_FILE_NOT_FOUND_ERROR_CODE;
然后我尝试在其中放置一个变量“数组”,如下所示:
eval('$array(`sed -n "s/const \(DEFAULT[A-Z_]*\) = \([0-9]*\);/$array[\2]=\1;/p" $1`)')
和其他几种组合,但没有成功。
为什么我在stackOverflow中发布这个
我想知道是否可以解决它以及如何解决,或者是否有其他更容易的方法。
谢谢