# Run a file from its source filename and not just its # fully qualified class name. function javad( ) { source=$1 shift 1 java `echo ${source} sed ′s/.java$//′ sed ′s///./g′` $* } 非凡懒的程序员也许会想编译一个目录中的所有Java源代码。我们可以通过javacdir com/完成此功能,其中javacdir函数实现如下:
# Compile everything in a Directory. # change javac to jikes if need be function javacdir( ) { jikes `find $1 -path ′*.java′` 2〉&1 more } 当我们运行javacdir的时候,我们会得到一堆错误,我们将很难分辨是那些类无法编译。所以我们要列出所有还没有对应一个.class文件的源代码文件。我们使用missingc com/来完成此功能,其中missingc函数实现如下:
function missingc( ) { for i in `findj $1` do if [ -e `echo $i sed ′s/java$/class/′` ]; then echo XXXX else echo $I fi done grep -v ′XXXX′ } 这将列出所有缺少一个.class文件的源文件。可以通过将这些函数加入一个文本文件并编译运行这些文件获得这些函数。