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.
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