<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: scripting code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 12 Oct 2008 03:57:15 GMT</pubDate>
    <description>DZone Snippets: scripting code</description>
    <item>
      <title>server monitoring</title>
      <link>http://snippets.dzone.com/posts/show/5611</link>
      <description># servers.sh&lt;br /&gt;export MAILSERVERS="server1 server2 server3"&lt;br /&gt;export WEBSERVERS="www1 www2 www3 www4"&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;### Assess disk space on mail servers&lt;br /&gt;source ./servers.sh&lt;br /&gt;for i in ${MAILSERVERS} ; do&lt;br /&gt;       echo =========${i} =============&lt;br /&gt;       ssh root@${i} "df"&lt;br /&gt;       echo ============ =============&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# min   hour    dom     month   dow     command&lt;br /&gt;&lt;br /&gt;grep &#8220;###&#8221; *</description>
      <pubDate>Sat, 07 Jun 2008 14:43:51 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5611</guid>
      <author>shantanuo (shantanu oak)</author>
    </item>
    <item>
      <title>The eval side of Ruby</title>
      <link>http://snippets.dzone.com/posts/show/5188</link>
      <description>The eval method in Ruby executes the code from within a string. &lt;br /&gt;&lt;code&gt;&lt;br /&gt;eval("puts 'Hello World'")&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;output:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Hello World&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 29 Feb 2008 13:53:58 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5188</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Ejemplo en C de un motor de scripting o maquina virtual</title>
      <link>http://snippets.dzone.com/posts/show/2666</link>
      <description>El codigo es una implementacion de un lenguaje de scripting sin lenguaje, por lo tanto queda limitado a la interpretacion de codigos por lo que se parece mas a una maquina virtual&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;typedef struct _operation{&lt;br /&gt;        unsigned int op;&lt;br /&gt;        int arg1;&lt;br /&gt;        int arg2;&lt;br /&gt;        int arg3;&lt;br /&gt;} operation;&lt;br /&gt;&lt;br /&gt;typedef struct _scriptEngine{&lt;br /&gt;        int var[255];&lt;br /&gt;        int ip;&lt;br /&gt;        int halt;&lt;br /&gt;        operation code[255];        &lt;br /&gt;} scriptEngine;&lt;br /&gt;&lt;br /&gt;void operation_run(const operation *p, scriptEngine *s){&lt;br /&gt;     switch (p-&gt;op){&lt;br /&gt;            case 0: //add&lt;br /&gt;                 s-&gt;var[p-&gt;arg1] = s-&gt;var[p-&gt;arg2]+s-&gt;var[p-&gt;arg3];&lt;br /&gt;                 s-&gt;ip++;&lt;br /&gt;                 printf("Realizando suma\n");&lt;br /&gt;                 break;&lt;br /&gt;            case 1: //sup&lt;br /&gt;                 s-&gt;var[p-&gt;arg1] = s-&gt;var[p-&gt;arg2]-s-&gt;var[p-&gt;arg3];&lt;br /&gt;                 s-&gt;ip++;&lt;br /&gt;                 printf("Realizando resta\n");&lt;br /&gt;                 break;&lt;br /&gt;            case 3: //mul&lt;br /&gt;                 s-&gt;var[p-&gt;arg1] = s-&gt;var[p-&gt;arg2]*s-&gt;var[p-&gt;arg3];&lt;br /&gt;                 s-&gt;ip++;&lt;br /&gt;                 printf("Realizando multiplicacion\n");                 &lt;br /&gt;                 break;&lt;br /&gt;            case 4: //div&lt;br /&gt;                 s-&gt;var[p-&gt;arg1] = s-&gt;var[p-&gt;arg2]/s-&gt;var[p-&gt;arg3];&lt;br /&gt;                 s-&gt;ip++;&lt;br /&gt;                 printf("Realizando division\n");                 &lt;br /&gt;                 break;&lt;br /&gt;            case 5: //mod&lt;br /&gt;                 s-&gt;var[p-&gt;arg1] = s-&gt;var[p-&gt;arg2]%s-&gt;var[p-&gt;arg3];&lt;br /&gt;                 s-&gt;ip++;&lt;br /&gt;                 printf("Realizando modulo\n");                 &lt;br /&gt;                 break;&lt;br /&gt;            case 6: //set&lt;br /&gt;                 s-&gt;var[p-&gt;arg1] = p-&gt;arg2;&lt;br /&gt;                 s-&gt;ip++;&lt;br /&gt;                 printf("Realizando asignacion\n");                 &lt;br /&gt;                 break;&lt;br /&gt;            case 7: //halt&lt;br /&gt;                 s-&gt;halt=1;&lt;br /&gt;                 break;&lt;br /&gt;            case 8: //jump&lt;br /&gt;                 s-&gt;ip=s-&gt;var[p-&gt;arg1];&lt;br /&gt;                 break;                 &lt;br /&gt;            default:&lt;br /&gt;                 break;            &lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;scriptEngine* scriptEngine_new(){&lt;br /&gt;              scriptEngine *new_script;&lt;br /&gt;              new_script = (scriptEngine*) malloc(sizeof(scriptEngine));&lt;br /&gt;              new_script-&gt;ip=0;&lt;br /&gt;              new_script-&gt;halt=0;              &lt;br /&gt;              return new_script;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void scriptEngine_delete(scriptEngine *script){&lt;br /&gt;     free(script);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void scriptEngine_run(scriptEngine *script){&lt;br /&gt;    &lt;br /&gt;     int j;&lt;br /&gt;     &lt;br /&gt;     while(script-&gt;halt==0){&lt;br /&gt;         printf("Inicio de operacion\n");&lt;br /&gt;         operation_run(&amp;(script-&gt;code[script-&gt;ip]),script);&lt;br /&gt;         printf("Estado de la maquina:\n");&lt;br /&gt;         for (j=0;j&lt;5;j++){&lt;br /&gt;             printf("Posicion de la memoria %i: %i\n",j,script-&gt;var[j]);&lt;br /&gt;         }         &lt;br /&gt;     }     &lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void scriptEngine_create_example(scriptEngine *script, int example){&lt;br /&gt;     switch (example){&lt;br /&gt;            case 0:&lt;br /&gt;                     script-&gt;code[0].op=6; //set&lt;br /&gt;                     script-&gt;code[0].arg1=0;&lt;br /&gt;                     script-&gt;code[0].arg2=10;&lt;br /&gt;                     &lt;br /&gt;                     script-&gt;code[1].op=6; //set&lt;br /&gt;                     script-&gt;code[1].arg1=1;&lt;br /&gt;                     script-&gt;code[1].arg2=20;&lt;br /&gt;                     &lt;br /&gt;                     script-&gt;code[2].op=0; //set&lt;br /&gt;                     script-&gt;code[2].arg1=2;&lt;br /&gt;                     script-&gt;code[2].arg2=0;     &lt;br /&gt;                     script-&gt;code[2].arg3=1;    &lt;br /&gt;                     &lt;br /&gt;                     script-&gt;code[3].op=7;&lt;br /&gt;                     break;&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv){&lt;br /&gt;    &lt;br /&gt;    scriptEngine* script;&lt;br /&gt;    script = scriptEngine_new();&lt;br /&gt;    scriptEngine_create_example(script,0);&lt;br /&gt;    scriptEngine_run(script);&lt;br /&gt;    scriptEngine_delete(script);&lt;br /&gt;    &lt;br /&gt;    system("PAUSE");&lt;br /&gt;    return 0;    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 22 Sep 2006 20:52:09 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2666</guid>
      <author>jcongote (John Edgar Congote Calle)</author>
    </item>
  </channel>
</rss>
