Página principal » cómo » Cómo crear y ejecutar scripts de shell Bash en Windows 10

    Cómo crear y ejecutar scripts de shell Bash en Windows 10

    Con la llegada del shell Bash de Windows 10, ahora puede crear y ejecutar scripts del shell Bash en Windows 10. También puede incorporar comandos Bash en un archivo por lotes de Windows o en un script 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 se puede acceder al sistema de archivos de Windows en una ubicación diferente en el entorno Bash.

    Cómo escribir un script de Bash en Windows 10

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

    En otras palabras, esto significa que no puede 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 asignar caracteres de fin de línea a UNIX 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 poderoso, pero si nunca lo has usado antes, puedes comenzar con nano. Es más fácil de usar si eres nuevo.

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

    nano ~ / myscript.sh

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

    Comience su script de shell con la línea:

    #! / bin / bash

    Ingrese los comandos que desea ejecutar, cada uno en su propia línea. El script ejecutará cada comando a su vez. 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 obtener trucos más avanzados, consulte una guía más detallada de los scripts de 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 los comandos y utilidades de terminal de Linux, tal como lo estaría en un sistema Linux típico.

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

    #! / bin / bash # establece la variable STRING STRING = "Hello World!" # imprimir el contenido de la variable en la pantalla echo $ STRING

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

    Haga el script ejecutable y luego ejecútelo

    Probablemente querrá que el script sea ejecutable para que pueda ejecutarlo más fácilmente. En Linux, eso significa que debe otorgar al archivo de script el permiso ejecutable. Para hacerlo, ejecute el siguiente comando en el terminal, apuntándolo a su script:

    chmod + x ~ / myscript.sh

    Para ejecutar el script, ahora solo puede ejecutarlo en el terminal escribiendo su ruta. Siempre que desee iniciar el script en el futuro, simplemente abra el shell 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 de 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 el archivo C: \ Users \ Bob \ Downloads \ test.txt, deberá especificar la ruta /mnt/c/Users/Bob/Downloads/test.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 de PowerShell

    Por último, si tiene un archivo por lotes existente o un script de PowerShell al que desea incorporar comandos, puede ejecutar comandos Bash directamente usando la bash -c mando.

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

    bash -c "comando"

    Este truco le permite agregar comandos Bash en archivos por lotes o scripts de PowerShell. La ventana del shell Bash aparecerá cuando se ejecute un comando Bash.

    Actualizar: Si tiene varios entornos Linux instalados, puede usar el comando wslconfig para elegir el entorno Linux predeterminado que se usa cuando ejecuta el bash -c mando.


    Para crear un acceso directo a una secuencia de comandos Bash desde Windows, simplemente cree un acceso directo como normal. Para el objetivo del atajo, use el bash -c comando que describimos anteriormente y lo apuntamos a la secuencia de comandos Bash que creó.

    Por ejemplo, apuntarías un atajo a " bash -c "~ / myscript.sh" ”Para ejecutar el script de ejemplo anterior. También puede ejecutar este comando desde una ventana de Símbolo del sistema o PowerShell..