Cómo crear y ejecutar Scripts de Shell Bash en Windows 10

  • Chris Hoffman

    @chrisbhoffman

  • Actualizado el 7 de marzo de 2018, a las 2:31pm EDT

Con la llegada del shell Bash de Windows 10, ahora puede crear y ejecutar scripts de shell Bash en Windows 10. También puede incorporar comandos Bash en un archivo por lotes de Windows o un script de PowerShell.

Incluso si sabes lo que estás haciendo, esto no es necesariamente tan simple como parece. Windows y UNIX utilizan diferentes caracteres de fin de línea, y el sistema de archivos de Windows es accesible en una ubicación diferente en el entorno Bash.

Cómo escribir un Script Bash en Windows 10

RELACIONADO: Cómo instalar y usar el Shell Bash de Linux en Windows 10

Al escribir scripts de shell en Windows, tenga en cuenta que los sistemas Windows y UNIX como Linux utilizan diferentes caracteres de «fin de línea» en archivos de texto en scripts de shell.

Advertisement

En otras palabras, esto significa que no puedes simplemente escribir un script de shell en el Bloc de notas. Guarde el archivo en el bloc de notas y Bash no lo interpretará correctamente. Sin embargo, puede usar editores de texto más avanzados, por ejemplo, Notepad++ le permite dar caracteres de fin de línea UNIX a un archivo haciendo clic en Editar > Conversión EOL > Formato UNIX/OSX.

Sin embargo, es mejor escribir el script de shell en el propio entorno Bash. El entorno Bash basado en Ubuntu viene con los editores de texto vi y nano. El editor vi es más potente, pero si nunca lo ha usado antes, es posible que desee comenzar con nano. Es más fácil de usar si eres nuevo.

Por ejemplo, para crear un script bash en nano, ejecutaría el siguiente comando en bash:

nano ~/myscript.sh

Esto abriría el editor de texto Nano apuntando a un archivo llamado «myscript.sh» en el directorio personal de su cuenta de usuario. (El carácter » ~ » representa su directorio personal, por lo que la ruta completa es /home/username/myscript.sh.)

Inicie su script de shell con la línea:

#!/bin/bash

RELACIONADO: La guía para principiantes de Shell Scripting: Lo básico

Advertisement

Introduzca los comandos que desee ejecutar, cada uno en su propia línea. El script ejecutará cada comando por turno. Agregue un carácter » # » antes de una línea para tratarlo como un «comentario», algo que le ayuda a usted y a otras personas a entender el script, pero que no se ejecuta como un comando. Para trucos más avanzados, consulte una guía más detallada de scripts Bash en Linux. Las mismas técnicas funcionarán en Bash en Ubuntu en Windows.

Tenga en cuenta que no hay forma de ejecutar programas de Windows desde el entorno Bash. Está restringido a comandos y utilidades de terminal Linux, tal como lo estaría en un sistema Linux típico.

Por ejemplo, usemos un script básico de «hola mundo» como ejemplo aquí:

#!/bin/bash # set the STRING variable STRING="Hello World!" # print the contents of the variable on screen echo $STRING

Si está utilizando el editor de texto Nano, puede guardar el archivo presionando Ctrl+O y luego Entrar. Cierre el editor pulsando Ctrl + X.

Hacer que el script sea ejecutable y luego Ejecutarlo

Probablemente querrá hacer que el script sea ejecutable para que pueda ejecutarlo más fácilmente. En Linux, eso significa que debe darle al archivo de script el permiso ejecutable. Para ello, ejecute el siguiente comando en la terminal, apuntando a su secuencia de comandos:

chmod +x ~/myscript.sh
Anuncio

Para ejecutar el script, ahora puedes ejecutar en la terminal escribiendo su camino. Siempre que desee iniciar el script en el futuro, simplemente abra el shell de Bash y escriba la ruta al script.

~/myscript.sh

(Si el script está en el directorio actual, puede ejecutarlo con ./myscript.sh)

Cómo trabajar con Archivos de Windows en un Script Bash

RELACIONADO: Cómo acceder a los Archivos Bash de Ubuntu en Windows (y a la Unidad de sistema de Windows en Bash)

Para acceder a los archivos de Windows en el script, deberá especificar su ruta en /mnt/c, no su ruta de Windows. Por ejemplo, si desea especificar la C:\Users \ Bob \ Downloads \ test.archivo txt, necesita especificar /mnt/c/Users/Bob / Downloads / test.ruta txt. Consulte nuestra guía de ubicaciones de archivos en el shell Bash de Windows 10 para obtener más detalles.

Cómo incorporar comandos Bash en un script por lotes o PowerShell

RELACIONADO: Cómo configurar la distribución predeterminada de Linux en Windows 10

Por último, si tiene un archivo por lotes o un script de PowerShell en el que desea incorporar comandos, puede ejecutar comandos Bash directamente con el comando bash -c.

Advertisement

Por ejemplo, para ejecutar un comando de Linux en un símbolo del sistema o una ventana de PowerShell, puede ejecutar el siguiente comando:

bash -c "command"

Este truco le permite agregar comandos Bash en archivos por lotes o scripts de PowerShell. La ventana de shell de Bash aparecerá cuando se esté ejecutando un comando de Bash.Actualización

: Si tiene varios entornos Linux instalados, puede usar el comando wslconfig para elegir el entorno Linux predeterminado utilizado cuando ejecuta el comando bash -c.

Para crear un acceso directo a un script Bash desde Windows, simplemente cree un acceso directo como siempre. Para el destino del acceso directo, use el comando bash -c que describimos anteriormente y apunte al script Bash que creó.

Advertisement

Por ejemplo, apuntaría un acceso directo a » bash -c "~/myscript.sh" » para ejecutar el script de ejemplo anterior. También puede ejecutar este comando desde un símbolo del sistema o una ventana de PowerShell.Chris Hoffman es Editor Jefe de How-To Geek. Ha escrito sobre tecnología durante más de una década y fue columnista de PCWorld durante dos años. Chris ha escrito para el New York Times, ha sido entrevistado como experto en tecnología en estaciones de televisión como la NBC 6 de Miami y ha tenido su trabajo cubierto por medios de comunicación como la BBC. Desde 2011, Chris ha escrito más de 2,000 artículos que se han leído casi mil millones de veces, y eso es solo aquí en How-To Geek.Lea la Biografía completa »

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *