2010-04-14 20 views
36

Estoy buscando scripting multiplataforma (lenguaje) para Windows, Linux, MacOS X. Estoy cansado de .bat/bash.

Me gustaría hacer cosas como, por ejemplo, "bloquear la estación de trabajo" en el inicio de sesión automático (tuve esto en X-Window pero la solución era bastante fea; ahora, me gustaría en MS Windows y no tan feo: -)).
Generalmente: automatice las tareas.

¿O estaría mejor con Windows Scripting Host?
PowerShell también me viene a la mente, pero eso parece ser solo para Windows, para mi gusto. ¿Pueden los lenguajes como Python, Ruby, (Java?) Interactuar (elegantemente? Sensiblemente?) Con WSH?

También cosas como DBUS, DCOM, etc. me vienen a la mente como parte de la imagen.

Actualmente uso una mezcla de Java, .bat, bash, Ruby, Scala; algunos VBA para Excel. Lo cual a veces se pone bastante feo.

Me gustaría una solución general multiplataforma con/usando partes 'nativas' próximas a las especificaciones del sistema operativo. Como p. Ruby conduce algunas cosas específicas de Windows (solo una suposición).
¿Qué usas?
TIAscripting multiplataforma para Windows, Linux, MacOS X

Respuesta

2

Creo que estás haciendo malabares al borde de lo contradictorio: te gustaría que sea independiente de la plataforma (encomiable) pero también "cercano a las especificaciones del sistema operativo".

Si, sin embargo, pone un poco más de énfasis en la independencia de la plataforma, he estado entreteniendo la idea de usar groovy (un pariente de rubí más amigable para Java) para scripting de propósito general. Cuando lo necesita, obtiene un comportamiento específico del sistema operativo invocando comandos de shell del sistema operativo.

Mi motivación es un poco diferente: considero que el código groovy es más robusto que el de bash, aunque también necesitaré una buena herramienta de scripting multiplataforma para un proyecto que estoy desarrollando.

+0

Gracias. Acerca de la supuesta 'contradictoria' ': generalmente multiplataforma pero capaz de integrar (llamar) os-específicos, bueno. Esto no es tan raro. – KarolDepka

+0

Tengo la sensación de que te estás inclinando por algo mejor que la combinación de comandos de ruby ​​+ shell que mencionaste: eso es lo que quise decir. Acabo de decir que no es probable que encuentres algo mejor que eso. –

+0

Groovy es bueno, pero el inicio lento de jvm hace que java no sea un iniciador para las secuencias de comandos cortas IMO. –

-1

Yo usaría C# con Mono.

+7

Eso me parece una elección extraña para las secuencias de comandos. En bash, por ejemplo, muestra el contenido de un archivo con 'cat file.txt'; en groovy con 'println new File (" archivo.txt "). text': ¿cuánto código (+ compilación) tendría que ver con C#? C# puede ser un buen lenguaje OO de propósito general, pero una cosa que no funciona bien es el soporte de scripting. –

+2

Solo como referencia (sin implicar que C# es bueno para scripting) en C# escribiría: File.ReadAllText ("file.txt") en un entorno repl (que se incluye en mono: http: //www.mono-project .com/CsharpRepl) – Cohen

2

Me gusta p. Rubí conducir un poco de materia específica de Windows

It certainly can y en el blog Ruby on Windows se puede encontrar gran cantidad de ejemplos también hay un capítulo en el libro y en el Pico humble uno.

4

Puede escribir sus scripts en Tcl.

  • la sintaxis es simple y más cercano a lo que se espera de un guión;

  • es multiplataforma y se ejecutará en todas las plataformas principales;

  • puede crear fácilmente GUI simples para sus scripts en Tk, que también funcionarán en todas partes y usarán controles nativos;

  • para las funciones específicas de Windows, puede utilizar Twapi (API Win32 fijaciones).

  • puede instalar un Tclkit, que es un archivo único que es la distribución Tcl completa.No hay un largo proceso de instalación o archivos ocultos o directorios misteriosos;

    • puede poner fácilmente un linux, Windows y Mac en tiempo de ejecución en una unidad flash única para que siempre tenga un intérprete a mano, incluso si no hay uno instalado localmente.
+1

Tcl también gana porque puede instalar un Tclkit, que es un archivo único que es la distribución de Tcl completa. No hay un largo proceso de instalación o archivos ocultos o directorios misteriosos. Además, puede poner fácilmente un linux, Windows y Mac en tiempo real en una sola unidad flash para que siempre tenga un intérprete a mano, incluso si no hay uno instalado localmente. Y, por supuesto, para la programación de GUI obtienes widgets nativos. –

5

Perl y Python son ambos disponibles en casi todas las plataformas

15

Soy un gran fan de Lua:

  • sintaxis es vagamente similar a Pascal y funciona bien en las secuencias de comandos .

  • Excelente relación potencia-peso. Excelente ingeniería. Muy buen diseño.

  • Extremadamente portátil para cualquier plataforma con un compilador ANSI C.

  • apoyo interfaz gráfica de usuario a través wxLua y otros enlaces

  • cierto apoyo para ocultar las diferencias OS en tareas comunes, por ejemplo, el sistema de archivos Lua complemento

  • El núcleo del sistema y las bibliotecas son lo suficientemente simple usted puede entender todos de lo que está utilizando, pero aún así tener un apalancamiento excelente en comparación con bash/bat. El poder expresivo es comparable a Python o Ruby.

  • No se siente abrumado con las bibliotecas y los marcos, que pueden ser una ventaja o una desventaja.

  • Hay un excelente libro: Roberto Ierusalimschy's Programming in Lua; puede obtener el previous edition free online.

  • Rendimiento late TCL, Perl, Python, Ruby

  • Para obtener un rendimiento aún más rápido en el hardware x86, hay LuaJIT.

  • Por último, y este es el as en la manga: si se presenta algún tipo de problema específico de la plataforma, es fácil escribir código C específica de la plataforma y cargarlo en un script Lua dinámicamente. Lua fue diseñado con esta tarea en mente y lo hace extremadamente bien. También puede sumergirse fácilmente en C para obtener rendimiento (por ejemplo, calcular la suma de comprobación MD5).

lo largo de los últimos 3 a 5 años, que han estado emigrando gradualmente los scripts de bash/ksh/awk/sed/grep/Perl en Lua. He estado muy contento con los resultados.

0

existe la posibilidad de plataformas UNIX y UNIX en shell, pero no creo que esto es lo que está pidiendo es posible en cualquier lenguaje de scripting debido a las ventanas.

Para los sistemas UNIX puede utilizar esto:

#!/bin/sh 

TYPE=`uname`; 
echo 'this is ' ${TYPE}; 

if [ ${TYPE} = HP-UX ] 
    then bdf /var; 
elif [ ${TYPE} = Linux ] 
    then df -h /var; 
elif [ ${TYPE} = FreeBSD ] 
    then df -k /var; 
else echo "Unsupported OS - ${TYPE}" 
fi 

espero que le ayudará!

source

1

No estoy seguro de si todavía lo necesita, pero si es así, tratar de hormigas (http://ant.apache.org/). Es un "lenguaje de script" multiplataforma. Básicamente, un archivo ant es un archivo xml interpretado por un programa JVM.

6

Usted podría intentar Batsh

Batsh es un lenguaje de programación sencillo que compila a Bash y Windows por lotes. Le permite escribir su secuencia de comandos una vez se ejecuta en todas las plataformas sin ninguna dependencia adicional.

Cuestiones relacionadas