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

Claude Code: un nuevo enfoque de la programación por pares

Claude Code es una herramienta de inteligencia artificial creada por Anthropic que funciona directamente en la terminal. Sirve para acele...

Etiquetas

Archivo del blog