Hazte a un shell-scripts: sh.py está aquí, y es impresionante.

Vídeo: Tutorial programacion bash shell script linux #1. Introduccion y primer script

Apuesto a que no sabía que se podía escribir shell scripts en Python.

Vídeo: Как запустить sh (shell) скрипт в терминале Ubuntu

Para cualquier programador o administrador de sistemas, secuencias de comandos shell es una habilidad vital de dominar. Se permite automatizar tareas tediosas, convirtiéndolos en acciones consistentes y repetibles. El problema es que puede ser un poco intimidante, especialmente si tenemos en cuenta que la mayoría de los dialectos de concha de secuencias de comandos no tienen la finura sintáctica que se encuentra en los gustos de Python y Ruby.

Voy a ser incluso más contundente. La mayoría de los scripts de shell son más feo que el pug promedio.

shpy-barro amasado

Además, hay una variedad de conchas disponible para plataformas UNIX, incluyendo Bash, CSH, KSH y FISH (mi favorito). Como resultado, la escritura, cáscara-scripts consistentes que funcionan en cada plataforma puede ser un reto.

Tiene que haber una manera mejor, ¿verdad?

La introducción de sh.py

Ahi esta. Cuando no estoy escribiendo para MakeUseOf, estoy escribiendo código en Python para la diversión y el beneficio. Realmente me gusta Python debido a su flexibilidad, su belleza intrínseca y cómo se ordena la redacción de un buen código de diseño. Si eso suena bien a usted, pero usted no lo sabe ya este lenguaje impresionante, ¿por qué no echa un vistazo a estos cinco grandes sitios web para aprender programación Python?Los 5 mejores sitios web para aprender a programar en PythonLos 5 mejores sitios web para aprender a programar en PythonDurante la última década, el lenguaje de programación Python ha explotado en popularidad entre los programadores en todas las áreas de la codificación. De los desarrolladores web a los diseñadores de juegos de vídeo a los creadores de la herramienta de la casa, muchas personas han caído en ...Lee mas

Me encontré con esta biblioteca realmente impresionante hace unos meses llamados sh.py, lo que le permite llamar a los programas, pasar parámetros y manejar las salidas, todo dentro de los confines de un programa en Python.

¿Entonces, qué significa esto? En pocas palabras, esto significa que usted tiene toda la funcionalidad de secuencias de comandos shell, pero desde dentro de un lenguaje que es fácil de leer, es de naturaleza modular y soporta programación orientada a objetos. Fresco, ¿verdad?

Vídeo: Tutorial programacion en bash shell script linux #7. Bucles While y Until

Así pues, cómo la usamos?

Estoy haciendo algunas suposiciones acerca de usted. La primera es que se está ejecutando Linux, OS X o FreeBSD. Ya que es en este momento, sh.py no funciona en Windows. Sin embargo, si es necesario, siempre se puede instalar una máquina virtual Linux. Mi colega Justin Pot ha escrito un artículo muy útil sobre, el cual usted puede sacar de aquí .Cómo usar las imágenes VirtualBoxes libres para probar & Run Open Source Sistemas Operativos [Linux]Cómo usar las imágenes VirtualBoxes libres para probar & Run Open Source Sistemas Operativos [Linux]probar rápidamente una amplia variedad de sistemas operativos de código abierto, alguna que esté familiarizado con y algunos que no lo son. Puede comenzar a navegar ahora en Virtualboxes, un sitio web que lleva casi todo el trabajo ...Lee mas

El segundo supuesto que estoy haciendo es que está ejecutando una versión reciente de Python (ya sea 2.7 o 3.2) y que tenga el gestor de paquetes PIP instalado. Si este no es el caso, echar un vistazo a la documentación oficial de Python.

¿Todo bien? A continuación, vamos a seguir.

Vamos a empezar a programar

En un terminal, instale sh.py con el siguiente comando.

sudo sh instalar PIP

La razón por la que estamos usando ‘sudo` aquí es porque tenemos que elevar nuestras permisos para agregar nuevos paquetes de Python. Si sh.py instala correctamente, verá las siguientes líneas presentes en su terminal.

Descargar / desembalaje shDownloading sh-1.09.tar.gzRunning egg_info setup.py paquetes recogidos paquete shInstalling: shRunning setup.py install para instalar shSuccessfully shCleaning arriba ...

Si no dice esto, más probable es que su instalación ha fallado. Triste. Si ese es el caso, trate de comprobar sus permisos y que en realidad se ha instalado PIP. Si todavía no está ahí, intentar pedir desbordamiento de pila (que ha sido previamente discutido por nuestro editor de Internet, Saikat Basu) o Respuestas MakeUseOf.10 sitios web que pueden ayudar al programador principiante con la muestra de fragmentos de código10 sitios web que pueden ayudar al programador principiante con la muestra de fragmentos de códigoLee mas

Ahora que se clasifica, se creará un nuevo directorio. Es aquí donde vamos a poner todo nuestro código. Abre un editor de texto y crear un archivo llamado ‘shtest.py`. A continuación, vamos a simplemente crear un nuevo archivo, y luego una lista de los contenidos del directorio que estamos. Suena bien?

En shtest.py, añadir las siguientes líneas.

shpy-shtest

#! / Usr / bin / env pythonimport sh
sh.touch ( `hola`) de impresión (sh.ls ( ‘- L `))

cosas simples aquí. Vamos a descomponerlo.

#! / Usr / bin / env python

Esta línea se llama el hash-bang, e instruye a su shell para abrir este archivo como un programa Python. Esto le permite abrir como lo haría un script de shell (./shtest.py), en lugar de abrirlo directamente con Python (Python shtest.py). Fresco, ¿verdad?

sh importación

Esta línea importa la biblioteca sh, que se instaló hace unos momentos. No podemos continuar sin este, así que asegúrese de que está en su código!

sh.touch ( `hola`)

Usted podría estar familiarizado con el comando de Linux, ‘toque`. Esto crea un archivo vacío con el nombre de archivo que se especifica. En este caso, estamos llamando directamente ‘toque` de dentro de Python. Como se puede ver, hemos prologado esto con ‘sh. `, Y estamos pasando un parámetro de‘hola`.

impresión (sh.ls ( ‘- L `))

Usted podría estar familiarizado con el comando ‘print`, que imprime texto a la consola. En este caso, estamos pasando vale sh.ls` como parámetro. Esto exige el programa de Linux ls, que enumera el contenido de un directorio. También estamos de paso, que un parámetro de ‘-l`, que imprime una información más detallada sobre los contenidos del directorio que ejecutamos esto en.

¿Funciona? Ver por ti mismo.

shpy-shtest-works

Aquellos de ustedes con ojos de halcón se dará cuenta de que hay otro archivo que fluctuaban en ese directorio llamado ‘gitsh.py`. ¿Qué podría estar ahí?

Comandos sub

sh.py tiene algunos ganchos para programas populares ya cocidos en. Estos incluyen git, sudo y un número significativo de utilidades de Linux. Esto hace que la interacción con estos servicios desde el interior de Python aún más fácil.

Vídeo: Linux Shell Scripting - Part 1

¿Cuan sencillo? Bueno, voy a mostrar cómo inicializar un repositorio vacío de Git en sólo tres líneas de código. En primer lugar, crear un archivo llamado ‘gitsh.py` y se abre en el editor de textos.

En el interior, escribir las tres líneas siguientes.

shpy-gitsh#! / Usr / bin / env importación pythonfrom sh gitprint (git.init ())

La mayor parte de esto debería ser bastante familiar para usted. Se dará cuenta de que importamos ‘git` de‘sh`. Esto sólo significa que hemos importado una parte específica de la funcionalidad de un módulo, mientras que haciendo caso omiso de todo lo demás.

Después de eso, inicializamos nuestro repositorio.

impresión (git.init ())

Hemos hablado de impresión. Usted debe notar que estamos llamando ‘git` sin’ .sh` de proceder ella. Esto se debe a que hemos importado específicamente la funcionalidad de la biblioteca git ‘sh`.

shpy-gitsh-works

Y eso es todo. Cuando corremos gitsh.py, hay que ver las siguientes líneas aparecen en su terminal.

Conclusión

Esa fue una introducción razonablemente fácil de sh.py. Si estás ansioso por aprender más sobre él, echa un vistazo a la documentación oficial aquí. Sin embargo, si se queda atascado, no dude en descender por debajo de un comentario y voy a tratar de ayudarle a cabo.

Artículos Relacionados