2009-07-08 39 views
19

En cygwin, podría hacer ./script.sh args, pero esto abre el archivo de secuencia de comandos en el bloc de notas en PowerShell.Ejecutar secuencia de comandos bash desde Windows PowerShell

¿Qué debo hacer para que se ejecute?

+1

Me pregunto por qué esperas que se ejecute una secuencia de comandos * nix-ish en Powershell ... Tienen conjuntos de comandos y sintaxis de scripting completamente diferentes (además, los scripts de powershell requieren una extensión .ps1 AFAIK). Podría publicar el script bash y alguien podría ayudarlo con una versión de Powershell. –

+0

Porque: funciona. Ver respuesta aceptada – wsorenson

+2

Estoy iluminado :) –

Respuesta

15

debe poner el script como argumento para un * NIX shell se ejecuta, equivalente al * NIXish

sh myscriptfile 
+1

sh ./script.sh funciona. – wsorenson

+9

¿De verdad? Obtengo El término 'sh' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operable. – KCD

+19

Una advertencia a la respuesta aceptada es que 'sh' no está incluido en Powershell de vanilla. Tuve que instalar Git, que opcionalmente agrega algunas herramientas de UNIX al 'PATH' en Powershell,' sh.exe' es una de ellas. – peplin

4

Si se agrega la extensión .SH a la variable de entorno PATHEXT, usted será capaz de ejecutar shell secuencias de comandos de PowerShell utilizando sólo el nombre del script con argumentos:

PS> .\script.sh args 

Si almacena sus scripts en un directorio que se incluye en la variable de entorno PATH, se puede ejecutar desde cualquier lugar, y omitir la extensión y la ruta:

PS> script args 

Nota: sh.exe u otro * nix shell deben asociarse con la extensión .sh.

+0

Para usuarios que no usan PowerShell que buscan hacer esto, ¿cómo se actualiza correctamente la 'RUTA' de PowerShell? variable? –

+1

Powershell utiliza las mismas variables de entorno que utilizan todos los demás programas.Si escribe "entorno del sistema" en el menú de inicio de Windows, debería aparecer una opción del panel de control para editar variables de entorno. – Rynant

11

En la actualidad existe una solución "nativo" en Windows 10, después de habilitar Bash en Windows, puede introducir intérprete de comandos escribiendo bash: Bash on Windows

Puede ejecutar secuencias de comandos Bash como bash ./script.sh, pero tener en cuenta que La unidad C se encuentra en /mnt/c, y los discos duros externos no se pueden montar. Por lo tanto, es posible que deba cambiar el script un poco para que sea compatible con Windows.

Además, incluso como root, usted todavía puede obtener permiso denegado cuando se mueve alrededor de los archivos en /mnt, pero tiene su root plena potencia en el sistema de archivos /.

También asegúrese de que su script de shell esté formateado con estilo Unix, o puede haber errores. Example script

Cuestiones relacionadas