@@ -0,0 +1,878 @@
+package kalang.script;%0A%0Aimport java.io.IOException;%0Aimport java.util.logging.Level;%0Aimport java.util.logging.Logger;%0Aimport kalang.lang.Script;%0A%0A/**%0A *%0A * @author Kason Yang%0A */%0Apublic abstract class ShellScript extends Script %7B%0A    %0A    protected int exec(String command,String... arguments) throws IOException%7B%0A        String%5B%5D list = new String%5Barguments.length+1%5D;%0A        list%5B0%5D = command;%0A        if(arguments.length%3E0)%7B%0A            System.arraycopy(arguments, 0, list, 1, arguments.length);%0A        %7D%0A        ProcessBuilder pb = new ProcessBuilder(list);%0A        pb.inheritIO();%0A        Process p = pb.start();%0A        try %7B%0A            p.waitFor();%0A        %7D catch (InterruptedException ex) %7B%0A            %0A        %7D%0A        return p.exitValue();%0A    %7D%0A    %0A    protected int exec(String command) throws IOException%7B%0A        return exec(command,new String%5B0%5D);%0A    %7D%0A%0A%7D%0A

add kalang.script.ShellScript