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
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.
Yo usaría C# con Mono.
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. –
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
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.
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.
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. –
Perl y Python son ambos disponibles en casi todas las plataformas
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.
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á!
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.
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.
- 1. Crear una aplicación multiplataforma para Windows, Mac OS X
- 2. Aplicación para iOS y MacOS X
- 3. Biblioteca multiplataforma para manipular rutas de Windows?
- 4. ¿Conoce alguna biblioteca de socket multiplataforma (Windows & Linux) en C?
- 5. Aplicaciones multiplataforma con WPF
- 6. Escribir código C++ multiplataforma (Windows, Linux y Mac OSX)
- 7. equivalentes Linux/Mac OS X para Windows Communication Foundation
- 8. Interfaz de cacao con llavero MacOS X
- 9. Macro `__unix__` no definida en MacOS X
- 10. Native Swing Menu Bar Soporte para MacOS X En Java
- 11. 256 modos de color xterm para MacOS X
- 12. Qué cifra usar para multiplataforma
- 13. Equivalente multiplataforma a eventos de Windows
- 14. Editor CoffeeScript para MacOS
- 15. Cliente GUI MongoDB (multiplataforma o Linux)
- 16. Programación multiplataforma
- 17. ¿Cómo ejecutar la aplicación Java al inicio del sistema en Windows/Linux/MacOS?
- 18. Cómo detectar de manera confiable el preprocesador Mac OS X, iOS, Linux, Windows en C?
- 19. Observador del sistema de archivos multiplataforma (Linux/OS X) (ejecuta el comando cuando el archivo cambia)
- 20. Instalador multiplataforma gratuito
- 21. Mejor estructura de carpetas para C++ biblioteca multiplataforma y enlaces
- 22. Windows Mobile Emulator para Linux
- 23. Escribir un idioma para el Windows Scripting Host (WSH)
- 24. Implementación de la aplicación Python Qt multiplataforma: Win, OSX, Linux
- 25. Instalador multiplataforma
- 26. formateo HTML5 en MacOS X? (preferiblemente con TextMate)
- 27. Encabezados OpenGL para OS X y Linux
- 28. Obtener clave privada de MacOS X keystore utilizando Java
- 29. La vinculación está jacked up ... ¿qué es -rpath? MacOS X
- 30. ¿Una mejor opción para el desarrollo multiplataforma: Java o C#?
Gracias. Acerca de la supuesta 'contradictoria' ': generalmente multiplataforma pero capaz de integrar (llamar) os-específicos, bueno. Esto no es tan raro. – KarolDepka
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. –
Groovy es bueno, pero el inicio lento de jvm hace que java no sea un iniciador para las secuencias de comandos cortas IMO. –