try { Object obj = this.i.eval(cmd);  if (!_isDevel(this.i)) { p.pp(this.i, obj); } } catch (bsh.EvalError eBEE) {    }
cmd = ShellHelper.eval(i, cmd);
  private void _run()     throws  GrouperShellException  {    String cmd = new String();    try {      this.i.eval(  "importCommands(\"com.devclue.grouper.shell\")"                 );      this.i.eval(  "importCommands(\"edu.internet2.middleware.grouper\")"          );      this.i.eval(  "importCommands(\"edu.internet2.middleware.subject\")"          );      this.i.eval(  "importCommands(\"edu.internet2.middleware.subject.provider\")" );      this.i.eval(  "import edu.internet2.middleware.grouper.*;"                    );      this.i.eval(  "import edu.internet2.middleware.subject.*;"                    );      this.i.eval(  "import edu.internet2.middleware.subject.provider.*;"           );    }    catch (bsh.EvalError eBBB) {      throw new GrouperShellException(E.I_IMPORT + eBBB.getMessage(), eBBB);    }    while ( (cmd = r.next()) != null) {      // TODO Replace these with something cleaner      if ( cmd.startsWith("#") || cmd.startsWith("//") ) {        continue;      }      if ( cmd.equals("exit") || cmd.equals("quit") ) {        this._stopSession();        break;      }      // Update command history      try {        setHistory(this.i, this.r.getCnt(), cmd);      }      catch (bsh.EvalError eBEE) {        this.i.error(E.GSH_SETHISTORY + eBEE.getMessage());      }      // Now try to eval the command      try {        Object obj = this.i.eval(cmd);        // If we aren't in devel mode, just print out the results        if (!_isDevel(this.i)) {          p.pp(this.i, obj);        }      }      catch (bsh.EvalError eBEE) {        // TODO ???        // this.i.error("EVAL ERROR.GET: " + eBEE.getErrorText());        // this.i.error("EVAL ERROR.GM : " + eBEE.getMessage());      }    }  } // private void _run(r)