Tabla de contenidos
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 sabe lo que está haciendo, esto no es necesariamente tan simple como parece. Windows y UNIX utilizan diferentes caracteres de final 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 Bash en Windows 10
Al escribir scripts de shell en Windows, tenga en cuenta que Windows y los sistemas similares a UNIX como Linux utilizan diferentes caracteres de «final 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 utilizar editores de texto más avanzados; por ejemplo, Notepad ++ le permite dar a un archivo caracteres de fin de línea 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 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 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).
Inicie 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 por turno. Agregue un carácter «#» antes de una línea para tratarlo como un «comentario», algo que le ayuda a usted ya otras personas a comprender el script pero que no se ejecuta como un comando. Para obtener 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 los comandos y utilidades del terminal de 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 # establecer la variable STRING STRING = "¡Hola mundo!" # imprime el contenido de la variable en pantalla echo $ STRING
Si está utilizando el editor de texto Nano, puede guardar el archivo presionando Ctrl + O y luego Enter. Cierre el editor presionando Ctrl + X.
Haga que el script sea ejecutable y luego ejecútelo
Probablemente querrá que el script sea ejecutable para poder ejecutarlo más fácilmente. En Linux, eso significa que debe otorgar al archivo de secuencia de comandos el permiso de ejecución. Para hacerlo, ejecute el siguiente comando en la terminal, apuntándolo a su script:
chmod + x ~ / myscript.sh
Para ejecutar el script, ahora puede ejecutarlo en la 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 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, debe 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 PowerShell
Por último, si tiene un archivo por lotes existente o un script de PowerShell en el que desea incorporar comandos, puede ejecutar comandos Bash directamente usando el bash -c
comando.
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 "comando"
Este truco le permite agregar comandos Bash en archivos por lotes o scripts de PowerShell. La ventana del shell Bash aparecerá cuando se esté ejecutando un comando Bash.
Actualización : 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
comando.
Para crear un acceso directo a un script Bash desde Windows, simplemente cree un acceso directo como de costumbre. Para el destino del acceso directo, use el bash -c
comando que describimos anteriormente y apúntelo al script Bash que creó.
For example, you’d point a shortcut at ” bash -c "~/myscript.sh"
” to run the example script above. You can also just run this command from a Command Prompt or PowerShell window, too.