¿Cómo puedo ejecutar un script de shell en Windows? [duplicar]


23

Soy un usuario de Mac y soy nuevo en Windows. ¿Cómo puedo ejecutar un script de shell en Windows?

En general, guardaría el archivo de texto con la extensión .shy lo ejecutaría a través de la Terminal. Pero, ¿cómo podría hacer eso en Windows?



2
¿Puede proporcionar un ejemplo de un script que espera ejecutar en Windows?

1
¿Estás buscando ejecutar un .shscript de shell preexistente ? ¿O simplemente quieres saber cómo hacer un script para Windows?
Keltari

Respuestas:


30

Las secuencias de comandos con un .shsufijo son generalmente secuencias de comandos de shell Bourne (o bash, o ksh, o zsh, todas las shells derivadas del shell Bourne). (Tenga en cuenta que en los sistemas tipo Unix, incluido MacOS, el .shsufijo no es necesario; el sistema operativo mira la #!/bin/shlínea en la parte superior del script para determinar cómo ejecutarlo).

Windows no proporciona un shell tipo Bourne.

Puede instalar Cygwin , que proporciona un entorno similar a Unix en Windows, pero no tiene un entorno particularmente "nativo". (Comentario editorial: Cygwin es ideal para personas como yo que necesitan usar Windows pero prefieren usar Unix).

Hay otros subsistemas similares a Unix que se ejecutan en Windows, incluidos MinGW y el paquete de Servicios de Windows para UNIX proporcionado por Microsoft.

O, en lugar de intentar escribir y ejecutar scripts de shell tipo Unix, puede escribir archivos por lotes de Windows. Estos generalmente tienen un .bato .cmdsufijo. Usan los mismos comandos y sintaxis que el símbolo del sistema interactivo de Windows.

También está el relativamente nuevo Windows PowerShell ; No estoy familiarizado con eso, pero he oído cosas buenas al respecto.


3
Respaldaré la sugerencia de PowerShell como usuario de PowerShell que ha escrito varios scripts para hacer todo, desde reiniciar una computadora remota o cerrar los servicios en una computadora remota hasta obtener una lista de nombres de computadoras del directorio activo, alfabetizarlos y probar cada uno para ciertos servicios y haciendo grandes y complicados movimientos de archivos. Literalmente, puede hacerlo TODO en Windows.
Paperlantern

1
Vale la pena señalar que, si bien Cygwin puede permitir que el script se ejecute, puede que no se ejecute correctamente si se hacen algunas suposiciones sobre el sistema subyacente (es decir, binarios disponibles, diseño del sistema de archivos, etc.)
Daenyth


2

En Win, las extensiones comunes son .bato .cmd. Una buena fuente para los comandos utilizados en el shell de Windows es ss64 , para CMD y PowerShell.

Cygwin no es un "must". Simplemente le está dando el estilo Linux: use BASH en Win.


2

¿Qué hay de UWIN?

UWIN es un paquete de software creado por David Korn que permite que los programas escritos para el sistema operativo Unix se creen y ejecuten en Microsoft Windows con pocos cambios, si es que los hay. Parte del desarrollo de software se subcontrató a Wipro, India.

Comprueba esto UWIN - Unix para Windows

Características destacadas de UWIN

  1. Acceda a casi todas las herramientas de línea de comandos de Unix en Windows. 245 herramientas de línea de comando para ser exactos.
  2. Viene incluido con el compilador original de Unix 'cc', así como una gran cantidad de herramientas como 'make' y las bibliotecas necesarias que permiten construir y ejecutar aplicaciones Unix en máquinas Windows con muy pocos cambios en el código fuente.
  3. Opción para usar otros compiladores como Visual C ++ o Mingw para compilar programas. Paquete completo de Perl.
  4. Bibliotecas X windows para quienes aspiran a desarrollar aplicaciones X en Windows. Aunque para ejecutar esas aplicaciones en Windows, necesita un servidor X que no esté incluido con UWIN.
  5. UWIN viene con un applet del panel de control (se accede a través de 'Inicio-> Configuración-> Panel de control-> UWIN') que se puede usar para configurar algunos de los parámetros del sistema UWIN.

Usos de UWIN

  • Ejecute aplicaciones Unix de forma nativa en Windows a toda velocidad.
  • Utilice todo el poder de las herramientas de línea de comandos de Unix en Windows.
  • El shell korn incluido con UWIN hace que un usuario de Unix se sienta como en casa en un entorno Windows.
  • Desarrolle y ejecute aplicaciones UNIX en Windows.
  • Desarrollar aplicaciones X en la plataforma Windows.

Inconvenientes de UWIN

  • UWIN no viene incluido con un servidor X, por lo que un usuario no podrá ejecutar aplicaciones X en Windows. Aunque hay disponibles servidores X comerciales de terceros que pueden llenar este vacío.
  • UWIN no se publica bajo la GPL, pero se puede descargar y usar gratuitamente con fines educativos y no comerciales.

Ese software se usó para enseñarnos el comando Linux cuando estaba en la universidad ... realmente bueno ...


Ref: WikiPedia

Cygwin es un entorno similar a Unix y una interfaz de línea de comandos para Microsoft Windows.

Lo bueno es que Cygwin proporciona una integración nativa de aplicaciones, datos y otros recursos del sistema basados ​​en Windows con aplicaciones, herramientas de software y datos del entorno similar a Unix.

Interix
Interix es un componente de los Servicios para Unix (SFU) versión 3.0 y 3.5 ( este último se distribuye libremente ).

Las versiones más recientes de Interix, 5.2 y 6.0, son componentes de las ediciones Windows Server 2003 R2, Windows Vista Enterprise y Ultimate y Windows Server 2008 bajo el nombre SUA (Subsistema para aplicaciones basadas en Unix). La versión 6.1 se incluye en Windows 7 ( Enterprise y Ultimate) y Windows Server 2008 R2 (todas las ediciones)


2

Hay otra forma de hacer esto con la actualización de aniversario para Windows 10 . Ahora hay un shell Bash (Ubuntu) disponible en Windows.

Para usarlo, debe instalar la función, ya que no está habilitada de forma predeterminada.

  1. Vaya a Control Panel-> Programs-> Turn Windows Features On and Off.

  2. Seleccione la casilla de verificación para Windows Subsystem for Linux (Beta). Esto instalará la función y solicitará un reinicio.

Luego puede abrir un símbolo del sistema a través de ejecutar -> cmdluego escribir basho ejecutar -> bash.exe.

Esto le dará un bash shell sin máquina virtual o Cygwin o virtualbox.


1

Aunque las respuestas existentes aquí eran correctos en el momento, Windows 10 hace ahora incluyen opcionalmente una versión modificada de Ubuntu ejecutar un shell bash completa .

Una vez instalado, puede abrir un indicador de bash (al igual que lo haría con un terminal en OS X / macOS) y ejecutar el script como de costumbre, es decir:

chmod +x myscript.sh
./myscript.sh

Si desea ejecutar un script directamente desde Windows, puede crear un acceso directo en el mismo directorio y establecer el 'Destino' en algo como:

C:\Windows\System32\bash.exe -c "./myscript.sh"

Si la ruta de su script es relativa a la ubicación del acceso directo (como en el ejemplo anterior), asegúrese de que el campo 'Iniciar en' también esté en blanco.


0

Necesitará CygWin, y luego creo que podrá ejecutar:

sh yourscript.sh

0

La respuesta correcta fue dada en un comentario por Kenaniah, tienes que usar archivos por lotes . Debe nombrar su archivo de código de shell a * .bat, luego puede ejecutarlo haciendo clic en él o simplemente escribir su nombre en el terminal. Tenga en cuenta que el terminal de Windows no funciona exactamente como el terminal de Unix. Encontrará mucha ayuda y tutoriales para los comandos y la sintaxis en toda la web. También existe la posibilidad de usar Windows PowerShell , que parece ser más unix.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.