Con la llegada del shell Bash de Windows 10, ahora puede crear y ejecutar scripts de shell Bash en Windows 10. También puede incrustar comandos Bash en un archivo por lotes de Windows o un script de PowerShell.
Incluso si sabe lo que está haciendo, no es necesariamente tan fácil 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 los sistemas Windows y UNIX, como Linux, utilizan diferentes caracteres de «fin de línea» en los archivos de texto de script de shell.
En otras palabras, 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, Bloc de notas ++ le permite dar a un archivo caracteres de final 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, puede comenzar con nano. Es más fácil de usar si eres nuevo.
Por ejemplo, para crear un script bash en nano, necesitaría ejecutar 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 tratarla como un «comentario», algo que le ayude a usted ya otros a comprender el script, pero que no se ejecuta como un comando. Para obtener consejos más avanzados, consulte una guía más detallada sobre los 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á limitado a los comandos y utilidades de la 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 # set the STRING variable STRING="Hello World!" # print the contents of the variable on screen echo $STRING
Si está utilizando Nano Text Editor, puede guardar el archivo presionando Ctrl + O y luego Enter. Cierre el editor presionando Ctrl + X.
Haga que el script sea ejecutable, luego ejecútelo
Probablemente desee hacer que el script sea ejecutable para poder ejecutarlo más fácilmente. En Linux, esto significa que debe otorgar permiso de ejecución al archivo de secuencia de comandos. Para hacer esto, 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. Cada vez que desee ejecutar 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 incrustar comandos de Bash en un script por lotes o PowerShell
Finalmente, si tiene un archivo por lotes o un script de PowerShell en el que desea incrustar comandos, puede ejecutar comandos Bash directamente usando el bash -c
pedido.
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 a archivos por lotes o scripts de PowerShell. La ventana del shell Bash aparece cuando se ejecuta un comando Bash.
Poner al día: 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
pedido.
Para crear un acceso directo a un script Bash desde Windows, simplemente cree un acceso directo como de costumbre. Para el destino del atajo, use el bash -c
comando que describimos anteriormente y apúntelo al script Bash que creó.
Por ejemplo, señala un atajo a » bash -c "~/myscript.sh"
”Para ejecutar el script de muestra anterior. También puede ejecutar este comando desde un símbolo del sistema o una ventana de PowerShell.