viernes, 8 de marzo de 2013

Ejecutar un proceso o comando en Perl


En ocasiones tenemos la necesidad de ejecutar algún proceso externos (puede ser un script en Linux/Windows) desde nuestras aplicaciones, por ejemplo crear un directorio donde se guardaran los documentos PDF o XML que descargamos.

Update:
Pero antes de nada, ¿qué es un proceso?
Según la wikipedia es:  es un programa en ejecución, incluyendo el valor del program counter, los registros y las variables. Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto como un CPU virtual.

Supongamos creamos un script en Linux, lo llamamos "miScript.sh" y escribimos lo siguiente:

#!/bin/bash

activa(){
 echo hola $USER
}

ver(){

usuario=$(whoami)

if [ "$USER"="$usuario" ]; then

  activa

else

  echo usuario no registrado

fi

}
#invocar función
ver


Tenemos dos funciones  "ver" y "activa", si el nombre corresponde a un usuario registrado entonces se ejecutará la función "activa".


 Le damos los permisos de ejecución:  chmod +x miScript.sh , y ejecutamos con sh miScript.sh.


Con Perl podemos hacer uso de comandos del sistema.

ejecuta.pl

#!/usr/bin/perl

print "Ejecutar un script desde Perl\n";

system("sh miScript.sh"); // ejecuta el script


También podriamos usar:


print `sh miScript.sh´;


Ahora en Groovy podemos hacer lo siguiente.

ejecuta.groovy

print "sh miScript.sh".execute().text


En Python.

ejecuta.py

#!/bin/python

import os

os,system("sh miScript.sh")


En Scala.

ejecuta.scala

import scala.sys.process._;


object Scala extends App{

  "sh miScript.sh"!

}



Espero les sirva.

No hay comentarios:

Publicar un comentario