var globs={}; //Called when application is started. function OnStart() {   var lay = app.CreateLayout("Linear","Vertical,FillXY");   var txtopts = "MultiLine,ReadOnly,NoKeyboard,NoSpell,Left,MonoSpace"   var txt = app.CreateTextEdit("Please wait", -1, -1, txtopts);   lay.AddChild(txt);   app.AddLayout(lay);   globs.sys = app.CreateSysProc( "sh" );   globs.stdout = "/sdcard/stdout.txt"   globs.redir = " >> " + globs.stdout + " 2>&1 \n ";   sysEmpty();   //check PATH variable   sysEcho( "$PATH", true );   sysOut("SJG=Steve ;export SJG");   //list all environment variables   sysOut( "set", true );   sysOut( "set | grep STOR", true );   //display filesystem   sysOut("df", true);   //Change directory   sysOut("cd /sdcard");   //show path   sysOut("pwd", true);   sysOut("ls -l");   sysStamp();   //test stderr   sysOut("badCommand");   sysOut("ls -l /data");   sysOut("exit");   txt.SetText(app.ReadFile(globs.stdout));   app.Alert(app.GetEnv("EXTERNAL_STORAGE"));  }  function sysEmpty(stamp) {     app.DeleteFile(globs.stdout);     if(stamp) sysStamp(); } function sysOut (cmd, stamp) {    if(stamp) sysStamp();    globs.sys.Out(cmd + globs.redir) } function sysEcho(msg, stamp) {     sysOut('echo "' + msg +'"', stamp ); }  function sysStamp() {     var d = new Date();     sysEcho("**************************");     sysEcho(d.toISOString()+" *");     sysEcho("**************************"); }